./why_linuxlinux
if [ "$?" != "0" ]; then echo "Error run Environment" exit 1 fi
咱們的系統都有一個shell
Expands to the status of the most recently executed foreground pipeline.ide
擴展到最後執行的前臺狀態管道函數
也說就是ui
我C語言main有一個returncode
shell 也有一個 exit ip
腳本中的 $? 就是上一次腳本調用的return或是exit 的返回值字符串
好比
若是你的程序itwhylinux.cpip
#include <stdio.h> int main(int argc,char *argv[]) { printf("\nDemo\n"); return 0; }
這裏return的是0
那麼
gcc whylinux.c -o whylinux
上面的腳本不會出錯提示了
判斷xxx.xx是否存在 存在則執行下面的指令
如
if [ -f "$U_Mount_Dir$Update_File" ]; then echo "Exit Update_File $Update_File" >> /mdev.txt fi
若是$U_Mount_Dir$Update_File存在,則輸出信息到/mdev.txt文件中
一、能夠帶function fun() 定義,也能夠直接fun() 定義,不帶任何參數。
二、參數返回,能夠顯示加:return 返回,若是不加,將以最後一條命令運行結果,做爲返回值。 return後跟數值n(0-255
實例
__readINI() {
INIFILE=$1; SECTION=$2; ITEM=$3
_readIni=awk -F '=' '/\['$SECTION'\]/{a=1}a==1&&$1~/'$ITEM'/{print $2;exit}' $INIFILE
echo ${_readIni}
}
MAC=$(__readINI /mnt/yaffs2/publicgateway/private.ini privateinfo equiment_mac)
參數 ini文件名,組名,鍵名
沒有return,函數返回值是函數最後一行命令的執行結果
實例
ConfigZip=${MAC}".zip"
MAC是一個變量值,若是想要在這個變量值後面鏈接其餘字符串,則用{}將該變量值括起來,代表該變量是要進行字符串鏈接的。
update.txt文件中若是有ok字符串,則$?等於0
實例
ST1="12345678912345678900000000"
ConfigZip=${ST1:18:8}".zip"
echo "$ConfigZip"
${ST1:18:8}意思是截取ST1這個字符串的第18個字符後的8個字符串,截取後echo輸出的字符串爲00000000
實例
ConfigZip=$(cat /private_config.dat)
StrLength=${#ConfigZip}
第一行獲取private_config.dat文件中的字符串到ConfigZip變量中,第二行獲取ConfigZip字符串的長度
實例
ConfigZip=$(cat /private_config.dat)
StrLength=${#ConfigZip} echo $(($StrLength-8)) >> /mdev.txt echo ${ConfigZip:$(($StrLength-8))} >> /mdev.txt
第一行獲取private_config.dat中字符串的內容,第二行獲取其字符串長度,第三行算出StrLength字符串長度-8後 的長度,第四行輸出ConfigZip這個字符串的長度-8後的位置到結束的字符串內容。
實例
if (ls $ConfigZip > /dev/null 2>&1)
0:表示鍵盤輸入(stdin)1:表示標準輸出(stdout),系統默認是1 2:表示錯誤輸出(stderr)'>':表示重定向到哪裏 /dev/null:表示Linux的空設備文件 2:表示標準錯誤輸出&1:&表示等同於的意思,2>&1,表示2的輸出重定向等於於11>/dev/null:表示標準輸出重定向到空設備文件,也就是不輸出任何信息到終端,不顯示任何信息。2>&1:表示標準錯誤輸出重定向等同於標準輸出,由於以前標準輸出已經重定向到了空設備文件,因此標準錯誤輸出也重定向到空設備文件。這條命令的意思就是在後臺執行這個程序,並將錯誤輸出2重定向到標準輸出1,而後將標準輸出1所有放到/dev/null文件,也就是清空.因此能夠看出" >/dev/null 2>&1 "經常使用來避免shell命令或者程序等運行中有內容輸出。