[ 轉]Shell中引數($0,$1,$#,$NF,[email protected]等)的含義
阿新 • • 發佈:2018-11-12
Shell中引數($0,$1,$#,$NF,[email protected]等)的含義
-
釋出時間:2018-01-19 來源:網路 上傳者:使用者
- 摘要:此處僅僅從來記錄平時常用的命令的引數。以免下次忘記時及時找到。也方便更多的人。awk$0表示所有$1表示第一個$NF表示最後一個$(NF-1)表示倒數第二個比如:echo'abcd'|awk'{print$0}'的結果是'abcd'echo'abcd'|awk'{print$1}'的結果是'a'echo'abcd'|awk'{print$NF}'的結果是'd'echo'abcd'|awk'{print$(NF-1)}'的結果是'c'function$0當前指令碼的檔名或者函式
-
此處僅僅從來記錄平時常用的命令的引數。以免下次忘記時及時找到。也方便更多的人。
awk$0表示所有 $1表示第一個 $NF表示最後一個 $(NF-1)表示倒數第二個
比如:
echo 'a b c d' | awk '{print $0}' 的結果是'a b c d' echo 'a b c d' | awk '{print $1}' 的結果是'a' echo 'a b c d' | awk '{print $NF}' 的結果是'd' echo 'a b c d' | awk '{print $(NF-1)}' 的結果是'c' function$0 當前指令碼的檔名或者函式名 $n 傳遞給指令碼或函式的引數。n 表示position。例如,第一個引數是$1,第二個引數是$2。 $# 傳遞給指令碼或函式的引數個數。比如fuc a b c d, 共4個引數返回的值是就是4 $* 傳遞給指令碼或函式的所有引數。 [email protected]
#!/bin/bash function bfunc() { echo "$1" } function afunc() { echo "/$0 = ${0}" echo "/$1 = ${1}" echo "/$# = ${#}" echo "/$* = ${*}" echo "/ [email protected]上述程式碼的執行結果是:
$0 = ./test.sh $1 = a $# = 4 $* = a b c d [email protected] = a b c d $$ = 44076 " [email protected]" = a "$*" = a b c d可以清晰地看到[email protected] 和$* 的區別了吧.
需要指出的是此處$0 的值是”./test.sh”為檔案的名稱。當我們把執行從./test.sh 改成source test.sh (或者直接執行afunc a b c d )的時候值就變成了”afunc”,也就是函式名了。