shell-常見命令與拓展

命令 正則表達式

: 命令,空命令,返回值爲 1,至關於true的別名 while : 至關於 while true shell

. 命令,用於在當前shell中執行命令 一般,一個腳本執行一條外部命令或腳本程序時,會建立一個新的環境(一個子shell),(.)命令可使腳本保持當前腳本執行,經常使用於設置當前腳本的環境變量 函數

echo 命令,默認輸出帶換行的字符串,若不須要換行,使用echo -n 但不是全部的shell都支持 this

不換行的場合,建議用printf spa

eval 命令,在變量名前加 eval, 輸出的是變量所存儲的值 命令行

exit 命令,0表示執行成功 1-125能夠被程序自定義使用, 126 文件不可執行 127 命令未找到 128及以上 出現一個信號 調試

export 命令, 將做爲它參數的變量導出到子shell中,並使之在子shell中有效。export將本身的參數建立爲一個環境變量,而這個環境變量能夠被當前腳本調用的其餘腳本和程序看見 orm

set -a 或 set -o all 命令將導出它以後聲明的全部環境變量 ip

expr 命令,將它的參數當作一個表達式來求值 文檔

printf 命令 語法 printf "format string" parameter1 parameter2 …

但格式化字符串不支持浮點數的輸出,格式化字符串中除了%和\以外,全部的字符都按照原樣輸出

return 函數返回值,無return時,默認返回最後一條命令的退出碼

set 命令,爲shell設置參數變量,能夠結合 $(…)進行參數分割 參數爲字符串(不一樣參數間按照空格區分),經過

set $(…)

echo $2 能夠取得第二個參數

set -x 讓一個腳本程序跟蹤顯示它當前執行的命令

shift(參數前移) trap(響應按鍵中斷) unset(從環境中刪除變量或函數)

find 命令,搜索文件

find [path] [option] [tests] [actions]

grep 命令,在文件中搜索字符串,通用正則表達式解釋器

grep [options] PATTERN [FILES]

(`…`)或 $(…)命令 捕獲命令的執行,若是須要捕獲一條命令的執行結果,並它用在shell腳本程序中

拓展

1.算數拓展

完成算數運算,使用$((…)) …表示要求值的表達式

2.參數拓展

處理要傳入shell或腳本的參數 進行自動化的替代字符串(p60)

here文檔

向一條命令傳遞輸入的一種特殊方法,容許一條命令在得到輸入數據時好像在讀取一個文件或鍵盤

以<<開頭 緊跟一個特殊的字符序列,改序列在文檔末尾再次出現

cat <<!FUNKY!

hello

this is a here document

!FUNKY!

輸出是

hello

this is a here document

shell調試

 

跟蹤錯誤的主要方法是設置各類shell選項或使用echo來 顯示變量內容

 

p63 表格2-21 在調用shell時加上命令行選項或使用set命令

命令行選項

set選項

說明

sh -n <script>

set -o noexec

set -n

只檢查語法錯誤,不執行命令

sh -v <script>

set -o verbose 

set -v

在執行命令前回顯它們

sh -x <script>

set -o xtrace

set -x

在處理完命令後回顯它們

sh -u <script>

set -o nounset 

set -u

若是使用了未定義的變量,就給出出錯消息

相關文章
相關標籤/搜索