shell編寫總結

2021-07-24 07:38:24 字數 869 閱讀 9316

有時需要在乙個字串變數中定義乙個命令並預先包含乙個變數名, 在使用時再轉換成變數名, 此時可通過eval命令來達到目的.

cmd='eval echo $value'

value="hello"

$cmd

# 執行echo "hello", 輸出"hello"

shell指令碼開發中, 輸出的語句盡量不出現在標準輸出, 除非是少數的步驟提示性語句, 如果是出錯資訊, 應存入到自己定義的出錯日誌中, 以便後期維護和除錯, 其它不關心的資訊直接輸出到/dev/null中. 否則輸出資訊過多, 容易耗盡快取, 造成指令碼執行卡死, 難以除錯定位.

使用[ ]判斷

注意事項

[ $home == $mall ]

常用引數

數值比較

- -ne: 比較兩個引數是否不相等

- -lt 引數1是否小於引數2

- -le 引數1是否小於等於引數2

- -gt 引數1是否大於引數2

- -ge 引數1是否大於等於引數2

- -n:判斷變數是否有值

檔案比較

- -f 檢查某檔案是否存在

- -d 檢查目錄是否存在

- -x:判斷是否存在並有可執行許可權

- -d: 檔案為目錄為真

- -c: 檔案為字元特殊檔案為真

- -b: 檔案為塊特殊檔案為真

- -s: 檔案大小非0時為真

- -t: 當檔案描述符(預設為1)指定的裝置為終端時為真

許可權比較

- -r: 使用者可讀為真

- -w: 使用者可寫為真

- -x: 使用者可執行為真

編寫簡單shell

shell英文翻譯為外殼,殼的意思 而在linux作業系統中,我們將它作為作業系統的外殼來理解。對shell工作原理的感性認識,shell在執行指令時,看似執行指令,實際是建立了shell的子程序來代替父程序shell來執行指令,此時子程序執行指令並不是shell的指令,而是乙個全新的指令。這裡就運...

編寫Shell指令碼

獲取變數的方式 1 echo path 2 echo 3 echo path 引數的提取 引數的個數 n 第n個引數 0 當前指令碼名稱 取出所有引數 shift 引數左移 執行過程 2 編寫指令碼內容 單獨講解 3 新增執行許可權 chmod a x abc.sh 4 當前目錄執行 abc.sh ...

Shell 指令碼編寫

shell 指令碼與 windows dos 下的批處理相似,也就是用各類命令預先放入到乙個檔案中,方便一次性執行的乙個程式檔案,主要是方便管理員進行設定或者管理用的。但是它比 windows 下的批處理更強大,比用其他程式設計程式編輯的程式效率更高,它使用了 linux unix 下的命令。方法一...