Bash
為什麼在這個函式定義和命令行中需要這些特殊的分號?
我正在準備 LPIC1,考試 102。這個問題出現在我面前,我完全空白。我第一次參加測驗時就知道了,現在一個半月後,我的腦海裡全都模糊了。
做什麼
function a { echo $1; } ; a a b c
輸出? A.一個
B. abc
計程車
D. aabc
我試圖通過創建一個名為“腳本”的文件來重現此功能:
function a { echo $1; }; a a b c
保存它,給它執行權限然後試一試:
$ bash script a $
所以正確答案是A,但為什麼呢?有必要放一個
;
after$1
嗎?第二個;
是為了什麼?有人可以解釋一下這個腳本的語法嗎?
這些命令應該在命令行上執行,例如:
function a { echo $1; } ; a a b c
第二個分號將命令列表分隔為
function a { echo $1; }
和
a a b c
- 第一個命令將創建一個名為“a”的函式,它將回顯第一個位置參數。由於沒有換行符,因此需要
使用分號來結束函式內的命令列表。 (另見:-> 複合命令 -> { list; } )
echo $1
man bash
- 第二個命令
a a b c
將呼叫該函式(fist a)並將“ab c”作為位置參數傳遞給該函式。由於該函式只回顯第一個位置參數,因此正確答案是“A.”。