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:19wait [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