$# 是傳給指令碼的引數個數
$
0
是指令碼本身的名字
$
1
是傳遞給該shell指令碼的第乙個引數
$
2
是傳遞給該shell指令碼的第二個引數
$@ 是傳給指令碼的所有引數的列表
$* 是以乙個單字串顯示所有向指令碼傳遞的引數,與位置變數不同,引數可超過
9
個
$$ 是指令碼執行的當前程序id號
$? 是顯示最後命令的退出狀態,
0
表示沒有錯誤,其他表示有錯誤
區別:$@, $*
相同點:都是引用所有引數
不同點:$* 和 $@ 都表示傳遞給函式或指令碼的所有引數,不被雙引號(" ")包含時,都以"$1" "$2" … "$n" 的形式輸出所有引數。但是當它們被雙引號(" ")包含時,"$*" 會將所有的引數作為乙個整體,以"$1 $2 … $n"的形式輸出所有引數;"$@" 會將各個引數分開,以"$1" "$2" … "$n" 的形式輸出所有引數。
$*和$@詳細區別請看此處
#!/bin/bashecho
"-----------------
"for key in"$@
"doecho'$@
'$key
done
echo
"-----------------------------
"for key2 in $*
doecho'$*
'$key2
done
1、帶引號執行及結果:
[root@localhost ~]# bash file.sh linux "
python c
"-----------------$@ linux
$@ python c
-----------------------------$*linux
$*python
$*c2
、不帶引號執行及結果:
[root@localhost ~]# bash file.sh
linux python c
-----------------$@ linux
$@ python
$@ c
-----------------------------$*linux
$*python
$* c
學習永遠不晚。——高爾基
Linux中執行指令碼
bash shell 指令碼的方法有多種,現在作個小結。假設我們編寫好的shell指令碼的檔名為hello.sh,檔案位置在 data shell目錄中並已有執行許可權。方法一 切換到shell指令碼所在的目錄 此時,稱為工作目錄 執行shell指令碼 複製 如下 cd data shell hel...
Linux執行指令碼
首先指令碼需要有執行許可權 chmod u x file.sh 執行指令碼有三種方法 1.file.sh 特點 開啟bash子程序來執行,也就是開啟額外的程序來進行,不影響原程序的變數 配置等 2.bash file.sh 特點 和.file.sh相同 3.source file.sh 或者 fil...
linux執行指令碼
linux下開機以某乙個使用者執行指令碼 etc rc.local新增想要被執行的命令即可 預設是以root使用者執行 2 以期望的使用者執行命令 su c ls l myfile.txt guowei 解釋 其中需要被執行的命令是 ls l myfile.txt 期望的使用者的 guowei,表示...