SHELL内建指令

在 Shell 中有一些內建的指令,這些內建的指令如流程控制及 cd 等指令是 Shell 中的必備元素。另外還有一些為了提高執行效率的指令,如 test、echo 等。有的內建指令在系統中也有同樣名稱不同版本的相同指令,但是如 test、echo 等在執行時會偽裝成是在 /bin 中的指令。

在寫 shell script 時,要注意指令是否存在

下列即為常見的內建指令:

exit 離開程式,如果在 exit 之後有加上數字,表示傳回值,如:exit 0。在 UNIX 系統下,當程式正常結束,會傳回一個值 0,如果不正常結束則會傳回一個非 0 的數字。
. file dot 指令,在 shell 中可以使用 "." 來呼叫一個外部檔案,例如 . /etc/rc.conf. .profile。注意 . 和其後的指令中間有空白。
echo 印出一個字串。如果要使用非 shell 內建的 echo 則打 /bin/echo 來使用。
pwd 顯示目前所在目錄。
read var ... 從標準輸入 (通常是鍵盤) 讀入一行,然後將第一個字指派給跟在 read 之後的第一個參數,第二個字給第二個參數,依此類推,直到最後將所有字給最後一個參數。如果只有一個參數則將整行都給第一個參數。
readonly [var..] readonly 這個指令如果沒有加參數則顯示目前唯讀的變數。如果有加變數的話,則將該變數設定為唯讀。
return [n] 離開所在函式,如果在其後有加數字的話,則傳回該數字。和 exit 一樣,這個指令可以傳回該函式的執行結果,0 表示正常結束。
set 將 $1 到 $n 設定為其參數的字。例如:

$ date
Mon Jan 21 11:19 CST 2002
$ set `date`
$ echo $4
11:19

wait [n] 等待在執行程序 (PID) 為 n 的背景程式結束,如果沒有加參數 n 則等待所有背景程式結束。
exec command 執行一個外部程式,通常用於要改變到另一個 shell 或是執行不同的使用者者介面,如:

exec /usr/local/bin/startkde

export [var] 設定環境變數,如果沒有參數則印出新的環境變數。
eval command 把參數當成 shell 命令來執行,如:

$ a=c; b=m; c=d; cmd=date
$ eval $`echo $a$b$c`
Mon Jan 21 11:19 CST 2002

原文地址:https://www.cnblogs.com/lee/p/606738.html