我沒用過$@,但是可以自己寫個指令碼測試下。
先介紹下我知道的,如下:
位置變數 :$0,$1,$2,$3,$4,$5,$6,$7,$8,$9 $0顯示執行的指令碼,$1...顯示位置引數的值
預定義變數:
$# 表示位置引數的數量
$* 表示所有位置引數的內容
$? 表示命令執行後返回的狀態 (執行成功 返回0 執行不成功 返回非0)
$$ 表示當前程序的程序號 希望開啟壹個程序後不再開啟另壹個(/proc/<PID>)
$! 表示後臺執行的最後壹個程序號
$0 表示當前的程序名
測試指令碼如下:(位置變數只輸出到$3)
[root@XP-24-35 script]#vim a.sh
#!/bin/bash
echo '$0 ==> ' $0
echo '$1 ==> ' $1
echo '$2 ==> ' $2
echo '$3 ==> ' $3
echo '$$ ==> ' $$
echo '$* ==> ' $*
echo '$@ ==> ' $@
echo '$# ==> ' $#
echo '$? ==> ' $?
執行結果1(輸入小於三個位置引數a,b)
[root@XP-24-35 script]# ./a.sh a b
$0 ==> ./a.sh
$1 ==> a
$2 ==> b
$3 ==>
$$ ==> 4847
$* ==> a b
$@ ==> a b
$# ==> 2
$? ==> 0
執行結果2(剛好輸入三個位置引數)
[root@XP-24-35 script]# ./a.sh a b c
$0 ==> ./a.sh
$1 ==> a
$2 ==> b
$3 ==> c
$$ ==> 4844
$* ==> a b c
$@ ==> a b c
$# ==> 3
$? ==> 0
執行結果3(輸入大於3個位置引數)
[root@XP-24-35 script]# ./a.sh a b c d e f
$0 ==> ./a.sh
$1 ==> a
$2 ==> b
$3 ==> c
$$ ==> 4852
$* ==> a b c d e f
$@ ==> a b c d e f
$# ==> 6
$? ==> 0
實驗結果說明壹切,忘采納,謝謝。
shell指令碼中的$是什麽意思$ 錢號(dollar sign)
變數替換(Variable Substitution)的代表符號。
vrs=123
echo $vrs
123
shell指令碼中的“$<”是什麽意思?暫時沒有發現shell中這樣的環境變數
shell的系統環境變數包括以下
$n $1 表示第壹個引數,$2 表示第二個引數 ...
$# 命令列引數的個數
$0 當前程式的名稱
$? 前壹個命令或函式的返回碼
$* 以"引數1 引數2 ... " 形式儲存所有引數
$@ 以"引數1" "引數2" ... 形式儲存所有引數
$$ 本程式的(程序ID號)PID
$! 上壹個命令的PID
shell指令碼中#是什麽意思#在shell指令碼中是註釋的意思,用於說明程式碼的作用。
比如
# 輸出內容
echo "輸出內容"
作業系統與外部最主要的介面就叫做shell。shell是作業系統最外面的壹層。shell管理妳與作業系統之間的互動:等待妳輸入,向作業系統解
釋妳的輸入,並且處理各種各樣的作業系統的輸出結果。 shell提供了妳與作業系統之間通訊的方式。這種通訊可以以互動方式(從鍵盤輸
入,並且可以立即得到響應),或者以shell script(非互動)方式執行。shell script是放在檔案中的壹串shell和作業系統命令,它們可以被
重復使用。本質上,shell script是命令列命令簡單的組合到壹個檔案裏面。 Shell基本上是壹個命令直譯器,類似於DOS下的mand.
。它接收使用者命令(如ls等),然後呼叫相應的應用程式。較為通用的shell有標準的Bourne shell (sh)和C shell (csh)。
互動式shell和非互動式shell 互動式模式就是shell等待妳的輸入,並且執行妳提交的命令。這種模式被稱作互動式是因為shell與使用者進行交
互。這種模式也是大多數使用者非常熟悉的:登入、執行壹些命令、簽退。當妳簽退後,shell也終止了。 shell也可以執行在另外壹種模式:非
互動式模式。在這種模式下,shell不與妳進行互動,而是讀取存放在檔案中的命令,並且執行它們。當它讀到檔案的結尾,shell也就終止了。
shell的型別在UNIX中主要有兩大類shell Bourne shell (包括 sh, ksh, and bash) Bourne shell ( sh) Korn shell ( ksh) Bourne Again
shell ( bash) POSIX shell ( sh) C shell (包括 csh and tcsh) C shell ( csh) TENEX/TOPS C shell ( tcsh).
附:LINUX系統的shell原理
Linux系統的shell作為作業系統的外殼,為使用者提供使用作業系統的介面。它是命令語言、命令解釋程式及程式設計語言的統稱。
shell是使用者和Linux核心之間的介面程式,如果把Linux核心想象成壹個球體的中心,shell就是圍繞核心的外層。當從shell或其他程式向
Linux傳遞命令時,核心會做出相應的反應。 shell是壹個命令語言直譯器,它擁有自己內建的shell命令集,shell也能被系統中其他應用
程式所呼叫。使用者在提示符下輸入的命令都由shell先解釋然後傳給Linux核心。
linux shell指令碼中 $? 和 $@是什麽意思?$@ :以("$1""$2"...)的形式儲存所有輸入的命令列引數;
$? :上壹條命令的返回結果.
請教shell指令碼中的&是什麽意思& 後臺工作
單壹個& 符號,且放在完整指令列的最後端,即表示將該指令列放入後臺中工作。
tar cvfz data.tar.gz data > /dev/null &
shell指令碼中lcd是什麽意思妳shell指令碼中的 lcd 命令,應該是ftp的內建命令。代表 change local directory——切換本地目錄
用法:
lcd /path/to/your/directory
註:/path/to/your/directory是妳的壹個本地目錄
ftp 還有壹個內建命令 cd
當妳登入ftp伺服器後,就可以用cd命令,切換遠端目錄
shell指令碼中 crontab - 是什麽意思?-表示標準輸入
如果不加這個-,意思是壹樣的
查詢當前crontab檔案,去掉其中包括/root/monit/monit_reset.sh的行