Time of Update: 2015-01-05
標籤:$( )與` ` (反引號)都是用來做命令替換用(command substitution)的接下來,再讓我們看${ }吧...它其實就是用來作變數替換用的啦。 shell if 判讀語句常見的:[ 前後空格] 前面空格 [ -d FILE ] 如果 FILE 存在且是一個目錄則為真。[ -f FILE ] 如果 FILE 存在且是一個普通檔案則為真。[ -r FILE ] 如果 FILE 存在且是可讀的則為真。[ -z STRING ]
Time of Update: 2015-01-04
標籤:shell執行方式:nohup sh export_data.sh 20150102 >20150102.log 2>&1 &[1] 29531其中 0、1、2分別代表如下含義: 0 – stdin (standard input) 1 – stdout (standard output) 2 – stderr (standard error)nohup+最後面的&
Time of Update: 2015-01-04
標籤:在Shell中,調用函數時可以向其傳遞參數。在函數體內部,通過 $n 的形式來擷取參數的值,例如,$1表示第一個參數,$2表示第二個參數...帶參數的函數樣本:#!/bin/bashfunWithParam(){ echo "The value of the first parameter is $1 !" echo "The value of the second parameter is $2 !" echo "The value of the tenth
Time of Update: 2015-01-04
標籤:像其他語言一樣,Shell 也可以包含外部指令碼,將外部指令碼的內容合并到當前指令碼。Shell 中包含指令碼可以使用:. filename或source filename兩種方式的效果相同,簡單起見,一般使用點號(.),但是注意點號(.)和檔案名稱中間有一空格。例如,建立兩個指令碼,一個是被呼叫指令碼 subscript.sh,內容如下:url="http://see.xidian.edu.cn/cpp/view/2738.html"一個是主檔案 main.sh,內容如下:#!/bin/
Time of Update: 2015-01-04
標籤:與其他程式設計語言類似,Shell支援for迴圈。for迴圈一般格式為:for 變數 in 列表do command1 command2 ... commandNdone列表是一組值(數字、字串等)組成的序列,每個值通過空格分隔。每迴圈一次,就將列表中的下一個值賦給變數。in 列表是可選的,如果不用它,for 迴圈使用命令列的位置參數。例如,順序輸出當前列表中的數字:for loop in 1 2 3 4 5do echo "The value is:
Time of Update: 2015-01-04
標籤:函數可以讓我們將一個複雜功能劃分成若干模組,讓程式結構更加清晰,代碼重複利用率更高。像其他程式設計語言一樣,Shell 也支援函數。Shell 函數必須先定義後使用。Shell 函數的定義格式如下:function_name () { list of commands [ return value ]}如果你願意,也可以在函數名前加上關鍵字 function:function function_name () { list of commands [ return
Time of Update: 2015-01-04
標籤:if 語句通過關係運算子判斷運算式的真假來決定執行哪個分支。Shell 有三種 if ... else 語句:if ... fi 語句;if ... else ... fi 語句;if ... elif ... else ... fi 語句。1) if ... else 語句if ... else 語句的文法:if [ expression ]then Statement(s) to be executed if expression is
Time of Update: 2015-01-04
標籤:在迴圈過程中,有時候需要在未達到迴圈結束條件時強制跳出迴圈,像大多數程式設計語言一樣,Shell也使用 break 和 continue 來跳出迴圈。break命令break命令允許跳出所有迴圈(終止執行後面的所有迴圈)。下面的例子中,指令碼進入死迴圈直至使用者輸入數字大於5。要跳出這個迴圈,返回到shell提示符下,就要使用break命令。#!/bin/bashwhile :do echo -n "Input a number between 1 to 5: " read
Time of Update: 2014-12-30
標籤:前面已經講到,變數名只能包含數字、字母和底線,因為某些包含其他字元的變數有特殊含義,這樣的變數被稱為特殊變數。例如,$ 表示當前Shell進程的ID,即pid,看下面的代碼:$echo $$運行結果29949 特殊變數列表變數含義$0當前指令碼的檔案名稱$n傳遞給指令碼或函數的參數。n
Time of Update: 2015-01-02
標籤:linux shell第一個shell指令碼程式#!/bin/sh #第一行統一這樣寫echo ‘abc‘ #輸出abc運行(是因為目錄不對)[email protected]:~$ test.shtest.sh: command not found方案一[email protected]:~$ sh test.shabc方案二(沒有許可權)[email protected]:~$ ~/test.sh -bash:
Time of Update: 2015-01-02
標籤:if [ 0 -ne $# ]; then echo "USAGE: prog [IN]input_file" >&2; exit 1;fisource /etc/profilesource ~/.bash_profileulimit -c unlimited#./ExtractICBAData1 576_dumppages result/576.result.txt 2>log/576.stderr.txt
Time of Update: 2014-12-31
標籤:gzexe 助shell指令碼加密 01一、 簡介很多時候我們的指令碼會涉及到一些私密的資訊,例如:使用者名稱,密碼,或者其它重要訊息的時候,我們使用一些加密的手段來屏蔽這些資訊,確保系統的安全已經指令碼的可流傳性,通常情況下我們只需要通過系統內建的gzexe這個工具就夠了。二、 實驗測試開始: 2.1 編寫一個用於測試的指令碼[[email protected] ~]#
Time of Update: 2014-12-30
標籤:以“#”開頭的行就是注釋,會被解譯器忽略。sh裡沒有多行注釋,只能每一行加一個#號。只能像這樣:#--------------------------------------------# 這是一個自動打ipa的指令碼,基於webfrogs的ipa-build書寫:# https://github.com/webfrogs/xcode_shell/blob/master/ipa-build# 功能:自動為etao ios app打包,產出物為14個渠道的ipa包#
Time of Update: 2014-12-26
標籤:學習 shell指令碼之前的基礎知識:http://www.92csz.com/study/linux/12.htm shell指令碼全面學習:http://blog.chinaunix.net/uid-9078183-id-2436460.html Shell指令碼編程的常識:http://www.cnblogs.com/ebusi/archive/2011/02/09/1950422.html 經典shell 指令碼執行個體:http://wenku.baidu.com/link?
Time of Update: 2014-12-26
標籤:登入:bash先執行/etc/profile,再調用~/.bash_profile.登出:bash調用~/.bash_logout.執行新shell:在kde,gnone,icewm等案頭管理程式中,執行終端程式或手動執行/bin/bash,或在編輯程式中調用shell,會先調用/etc/bash.bashrc,再調用~/.bashrc執行script(使用#!/bin/bash):不調用.bash_profile,.bashrc,但會檢查BASH_ENV的內容,如果為非空則執行它指定的開
Time of Update: 2014-12-26
標籤:萬用字元:所謂萬用字元,指的時一種檔案名稱的樣式,可用來比對檔案名稱,以找到相符的檔案。*:代表任意的字串,可以是Null 字元串?:代表一個字元,但不可以為空白例如:列出/usr/bin下所有的檔案ls -la /usr/bin/*列出/usr/bin下,檔案名稱長度為4的檔案:ls -la /usr/bin/????字元集合:字元集合的符號是中括弧:[][a-z]:[A-Z]:[0-9][a-zA-Z][a-zA-Z0-9]括弧擴充的符號是{}它的用途是組合字元串。例如{g,nc,s}
Time of Update: 2014-12-27
shell編程之sortsort 排序操作, 針對一個或多個檔案中的一行,根據設定的規則進行排序。 輸出到標準輸出,並不會儲存到任何檔案中。-t 指定filed的分隔字元。 預設是空格指定,多個空格算一個。-k 指定針對第幾個域進行排序,第一個field記為1. 後面可跟範圍,用逗號分割,如-k 1,3,表示對第一個到第三個field進行排序 也可在field中劃定字元,用點分割,如-k 1.5,1.6 表示對第一個field中的第五個和第六給字元進行排序。-r 反序-n
Time of Update: 2014-12-25
shell編程之cut,shellcutcut以檔案中行為單位,根據你設定的條件,把部分內容剪下列印出來。輸出到標準輸出,並不會儲存到任何檔案中-b 範圍 根據位元組確定範圍-c 範圍 根據字元確定範圍-f 範圍 根據設定field確定範圍。預設是TAB分割field。使用-d指定。範圍設定的格式n
Time of Update: 2014-12-26
shell編程之cutcut以檔案中行為單位,根據你設定的條件,把部分內容剪下列印出來。輸出到標準輸出,並不會儲存到任何檔案中-b 範圍 根據位元組確定範圍-c 範圍 根據字元確定範圍-f 範圍 根據設定field確定範圍。預設是TAB分割field。使用-d指定。範圍設定的格式n 剪下n位的內容。-n 剪下1-n位的內容。n- 剪下n-最後一位的內容。n-m
Time of Update: 2014-12-26
常用的shell命令(陸續更新)1、擷取管道前面的傳回值echo ${PIPESTATUS[0]}e.g. root@node2:~# date1 | echo 22No command 'date1' found, did you mean: Command 'date' from package 'coreutils' (main)date1: command not foundroot@node2:~# echo