跳轉到內容

Bourne Shell 指令碼/附錄 A:命令參考

來自華夏公益教科書,開放的書籍,為開放的世界

Bourne Shell 提供大量內建命令,您可以在 shell 指令碼中使用它們。下表概述了這些命令。

Bourne Shell 命令參考
命令 描述
: 一個空命令,返回 0(真)退出值。
. file 執行。指定檔案中的命令被 shell 讀取並執行。通常被稱為“原始碼”一個檔案。
# 忽略所有文字,直到行尾。用於在 shell 指令碼中建立註釋。
#!shell 直譯器提示。指示作業系統使用哪個直譯器執行指令碼。
bg [job] ... 在後臺執行指定作業(如果沒有給出引數,則運行當前作業)。
break [n] 退出迴圈。如果指定了一個數字引數,則退出 n 級迴圈。
case 請參閱 Bourne Shell 指令碼/控制流
cd [directory] 切換到指定目錄(預設值為 $HOME)。
continue [n] 跳過迴圈中剩餘的命令,並在下次迭代時繼續迴圈。如果指定了一個整數引數,則跳過 n 個迴圈。
echo string 將字串寫入標準輸出。
eval string ... 將所有引數用空格連線起來。然後重新解析並執行命令。
exec [command arg ...] 在當前程序中執行命令。
exit [exitstatus] 終止 shell 程序。如果給出了 exitstatus,它將用作 shell 的退出狀態;否則,將使用最後一個完成命令的退出狀態。
export name ... 標記要匯出到子程序環境的命名變數或函式。
fg [job] 將指定的作業(如果沒有指定,則為當前作業)移到前臺。
for 請參閱 Bourne Shell 指令碼/控制流
hash -rv command ... shell 保持一個雜湊表,用於記住命令的位置。如果沒有引數,hash 命令將打印出此表的全部內容。自上次 cd 命令以來尚未檢視的條目用星號標記;這些條目可能是無效的。

如果給出引數,hash 命令將從雜湊表中刪除指定的命令(除非它們是函式),然後找到它們。-r 選項會導致 hash 命令刪除雜湊表中的所有條目,除了函式。

if 請參閱 Bourne Shell 指令碼/控制流
jobs 此命令列出當前 shell 程序的所有子程序。
-signal] PID ... 向 ID 列出的作業傳送訊號。如果未指定訊號,則傳送 SIGTERM。

如果使用 -l 選項,則列出系統上定義的所有訊號名稱。

newgrp [group] 暫時將您的使用者移動到新的組。如果沒有列出組,則移回使用者的預設組。
pwd 列印工作目錄。
read variable [...] 從輸入讀取一行,並將每個單獨的單詞分配給列出的變數(按順序)。任何剩餘的單詞都將分配給最後一個變數。
readonly name ... 使列出的變數只讀。
return [n] 從 shell 函式返回。如果指定了一個整數引數,它將是函式的退出狀態。
set [{ -options | +options | -- }] arg ... set 命令執行三個不同的函式。

如果沒有引數,它將列出所有 shell 變數的值。

如果給出選項,它將設定指定的選項標誌或清除它們。

set 命令的第三種用法是將 shell 的位置引數的值設定為指定的 args。要更改位置引數而不更改任何選項,請將“--”用作 set 的第一個引數。如果沒有 args,set 命令將清除所有位置引數(等效於執行“shift $#”。)

shift [n] 將位置引數向左移動 n 次。
test 請參閱 Bourne Shell 指令碼/控制流
trap [action] signal ... 使 shell 在接收到任何指定的訊號時解析並執行 action。
type [name ...] 顯示命令是 UNIX 命令、shell 內建命令還是 shell 函式。
ulimit 報告或設定資源限制。
umask [mask] 設定 umask 的值(為新建立的檔案分配的預設檔案許可權的掩碼)。如果省略引數,則列印 umask 值。
unset name ... 刪除 shell 中給定名稱的定義。
wait [job] 等待指定的作業完成,並返回作業中最後一個程序的退出狀態。如果省略引數,則等待所有作業完成,並返回退出狀態 0。
while 請參閱 Bourne Shell 指令碼/控制流


下一頁: 附錄 B:環境參考 | 上一頁: 除錯和訊號處理
首頁: Bourne Shell 指令碼
華夏公益教科書