Time of Update: 2018-07-26
在shell指令碼中,變數預設都是全域的。所以遞迴調用時需要使用local關鍵字來顯示標識局部變數,這樣就可以實現函數的遞迴調用。 自己寫了個遞迴算階乘的指令碼,發現當N=7之前都正常,之後就計算結果錯誤了。後來發現$?取函數的傳回值時,這個數位上限是很小的,只到255。所以後來使用了一個全域變數來儲存每次遞迴的結果。 #!/bin/bashN=$1RET=1function multi(){ local LOCAL_N=$1
Time of Update: 2018-07-26
Shell中的條件判斷語句是前面一篇“Shell中的條件測試語句”的升級篇,也就是說,前面的測試語句是為了現在的判斷語句if~then~fi語句服務的。 我們還是按照注意點和代碼實現的方式鋪開: 1)基本的if-then-fi語句可以用來判斷基本的單層的分支結構,其形式如下: 其中if後面的測試語句一般都使用[]命令來做。如下面的例子:
Time of Update: 2018-07-26
if [ $# != 2 ] then if [ $1 = "h" -o $1 = "H" ] then echo "help info"
Time of Update: 2018-07-26
#判斷數組中是否有給定元素 #參數:1 數組; 2 元素 #返回: yes/no # 例子: # 判斷數組 xrsh_array 中是否有元素 i3 #
Time of Update: 2018-07-26
HBase是一個分布式的、面向列的開來源資料庫,源於google的一篇論文《bigtable:一個結構化資料的分布式儲存系統》。HBase是Google Bigtable的開源實現,它利用Hadoop HDFS作為其檔案儲存體系統,利用Hadoop MapReduce來處理HBase中的海量資料,利用Zookeeper作為協同服務。 1. 簡介
Time of Update: 2018-07-26
#!/bin/sh a=1 a=$(($a+1)) a=$[$a+1] a=`expr $a + 1` let a++ let a+=1 ((a++)) echo $a 1.古典方法length=`expr length + 1`2. bash only$((length++)) 1. i=`expr $i + 1`;2. let i+=1;3. ((i++)
Time of Update: 2018-07-26
http://blog.zol.com.cn/2322/article_2321763.html $( ) 與 ` ` (反引號) 在 bash shell 中,$( ) 與 ` ` (反引號) 都是用來做命令替換用(command substitution)的。 所謂的命令替換與我們第五章學過的變數替換差不多,都是用來重組命令列: * 完成引號裡的命令列,然後將其結果替換出來,再重組命令列。 例如: [code]$ echo the last sunday is
Time of Update: 2018-07-26
h=$(date +%H) s=$(date +%S) m=$(date +%M) if [[ $h == 11 && $m == 41 && $s == 10 ]] 一. bash [ ] 單雙括弧 基本要素: Ø
Time of Update: 2018-07-26
checkpid:檢查是否已存在pid,如果有一個存在,返回0(通過查看/proc目錄) daemon:啟動服務 killproc:殺死某個進程 pidfileofproc:尋找某個進程的pid pidofproc:同上,使用pidof命令 status:返回一個服務的狀態 echo_success,echo_failure,echo_passed,echo_warning分別輸出各類資訊 success,failure,passed,warning分別記錄日誌並調用相應的方法
Time of Update: 2018-07-26
聽人說做文本分類時處理100G的文字檔,居然不用大資料,處理方法就是用shell的split去分割成若干小檔案。 split命令 NAME split - split a file into piecesSYNOPSIS split [OPTION] [INPUT [PREFIX]]DESCRIPTION Output fixed-size pieces of INPUT to PREFIXaa, PREFIXab, ...;
Time of Update: 2018-07-26
我希望有個如你一般的人 如山間清爽的風 如古城溫暖的光 從清晨到夜晚 由山野到書房 只要最後是你 就好 ——張嘉佳 《從你的全世界路過》 一、chars=` seq -s ” ” 100 ` :從1到100,以空格為分隔字元。 擷取字串長度的三種方法: echo ${#chars} #取長度 291 echo $chars|wc -m #292 echo $(expr length "$chars&
Time of Update: 2018-07-26
shell指令碼與Windows/Dos下的批處理相似,也就是用各類命令預先放入到一個檔案中,方便一次性執行的一個程式檔案,主要是方便管理員進行設定或者管理用的。相對於Perl、Python等指令碼語言優勢在於它能處理底層業務,因為有大量Linux命令作為支撐,如“警示業務”,“一鍵安裝”等用shell指令碼寫就會非常簡單。 Linux下的shell指令碼預設為bash ,sh其實是bash的一個連結。 查看預設shell的兩種方法: >echo
Time of Update: 2018-07-26
原文地址:http://www.cnblogs.com/Gukw/archive/2012/01/16/2323417.html 1,/etc/gitconfig:[gui] encoding = utf-8 #程式碼程式庫統一用urf-8,在git gui中可以正常顯示中文[i18n] commitencoding = GB2312 #log編碼,window下預設gb2312,聲明後發到伺服器才不會亂碼[svn] pathnameencoding = GB2312
Time of Update: 2018-07-26
1、read命令 read命令可以通過鍵盤或者一個檔案的某一行文本讀入資訊,並賦值給一個變數。 1.1、read讀取鍵盤資料,把輸入的內容斷行符號前的資料賦值給一個變數: cb@Standalone14:~$ read namehello cb i am ubuntu. #斷行符號cb@Standalone14:~$ echo $namehello cb i am ubuntu.
Time of Update: 2018-07-26
實現原理 strace 跟蹤結果: clone(child_stack=0, flags=CLONE_PARENT_SETTID|SIGCHLD, parent_tidptr=0x7fff936fc388) = 15661wait4(15661, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 15661實際的過程: 1. 父進程 - clone() 一個子進程 2. 父進程 - wait4()
Time of Update: 2018-07-26
今天繼續上一次find命令的內容,主要是find和 -exec 和xargs的結合和使用。 (9) find 命令可以藉助選項-exec與其他命令進行結合。- exec算得上是find最強大的特性之一。 比如我們要將某位使用者全部檔案的所有權更換為另一個使用者(比如root),那麼就可以用
Time of Update: 2018-07-26
http://c.biancheng.net/cpp/shell/ Shell是什麼。 是一個命令列解譯器,它為使用者提供了一個向Linux核心發送請求以便運行程式的介面系統級程式,使用者可以用Shell來啟動,掛起,停止甚至是編寫一些程式 還是一個功能強大的變成語言,易編寫,易調試,靈活性較強。Shell是解釋執行的指令碼語言,在Shell中可以直接調用Linux系統命令 Shell的分類 Bourne
Time of Update: 2018-07-26
1、linux shell下擷取進程ID的方法: ps -A |grep "/usr/sbin/gps_app"| awk '{if($6 == "'start'") {print $1}}' pidof "cmdname" pgrep "cmdname" 這三種在bash和busybox ash裡面的運行結果稍有不同,
Time of Update: 2018-07-26
Shell中可以使用"[ ]"進行資料判斷,“[ ]”的用法跟test基本一致。 使用“[ ]”時要注意三點(來自鳥哥): 1、在中括弧"[]"內的每個組件都需要有空格鍵來分割。 2、在中括弧內的變數,最好都以雙引號括起來。 3、在中括弧內的常量,最好都以單引號或雙引號括起來 if else語句的結構為: if [ condition ]; then #some
Time of Update: 2018-07-26
1、花生殼 花生殼的目的就是申請一個免費的網域名稱。 申請的方法很簡單,就是下載一個花生殼用戶端,註冊一個花生殼帳號,然後就會得到一個免費網域名稱。 我的帳號名字是dazhong159,得到的免費網域名稱是dazhong159.eicp.net。 2、公網到內網連接埠映射