shell中什麼意思,shell指令碼中,,分別代表什麼意思

2021-03-03 21:22:47 字數 4220 閱讀 7009

1樓:匿名使用者

$? 前一命令執行後的退出狀態。 可根據返回值判斷前一個命令是否成功執行。

2樓:貝毅穆飛宇

$?是上一個命令的執行結果,0表示成功,其他值是失敗。至於這個程式的其他部分,都是變數,我就不知道是什麼了。

shell 指令碼中$$,$#,$?分別代表什麼意思?

3樓:匿名使用者

給你個全的,你在linux環境下多試下就明白了:

$0 這個程式的執行名字

$n 這個程式的第n個引數值,n=1..9$* 這個程式的所有引數,此選項引數可超過9個。

$# 這個程式的引數個數

$$ 這個程式的pid(指令碼執行的當前程序id號)$! 執行上一個背景指令的pid(後臺執行的最後一個程序的程序id號)

$? 執行上一個指令的返回值 (顯示最後命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤)

$- 顯示shell使用的當前選項,與set命令功能相同$@ 跟$*類似,但是可以當作陣列用

4樓:匿名使用者

$$ : 當前 shell 的 pid

$#: shell的輸入引數的個數, 比方說 a.sh aaa mmm nnn , 則在 a.sh 裡,$# 為 3

$?: 上一條命令的返回值,比方說在指令碼里....

grep *** a.txt

echo $?

...就會 echo 上一條命令 grep 命令的返回值。

5樓:小米飛貓

請仔細查閱linux下shell的特殊字元解釋

shell 指令碼里$?什麼意思

6樓:匿名使用者

$? 上個命令的退出狀態,或函式的返回值。

例子1 :

ls 命令沒有找到匹版配的結果. 所以返回2 $? 就是權2[root@sg-rhel6-17 etc]# ls /tmp/*.log

ls: cannot access /tmp/*.log: no such file or directory

[root@sg-rhel6-17 etc]# echo $?

2例子2 :

ls 命令找到了結果. 成功返回0 所以$? 就是0[root@sg-rhel6-17 etc]# ls /tmp/*.tmp

/tmp/reminder.tmp

[root@sg-rhel6-17 etc]# echo $?0

7樓:徐未知

樓上bai正解,但不是很全,不一du定是執行指令碼,多指執行zhi命令,dao一般在程式裡面會對其進行判斷內,如果發現上

容一行的命令執行有誤,該指令碼就會終止執行。

if [ $? -ne 0 ]

then

#指令碼不正常退出

exit 1fi

在bash shell裡 $0 $? $* $@ 各表示什麼意思?

8樓:匿名使用者

$0就是該bash檔名,

$?是上一指令的返回值,

$*所有位置引數的內容:就是呼叫呼叫本bash shell的引數。

$@基本上與上面相同。

「$*」返回的是一個字串,字串中存在多外空格。

「$@」返回多個字串。

9樓:信念

1、$0

$0指的是這個bash的檔名。

2、$?

$?指的是上一指令的返回值。

3、$*

$*指的是所有位置引數的內容:就是呼叫呼叫本bash shell的引數。

4、$@

$@的功能基本上與$*是相同。只不過「$*」返回的是一個字串,字串中存在多外空格,而「$@」返回多個字串。

擴充套件資料:

bash引數說明:

1、-c字串

若用-c引數,則bash從字串中讀入命令,如果字串後還有變數就被設定為從$0開始的位置引數。

2、-i

若用-i引數,則bash是互動的。

3、-s

若用-s引數,則bash從標準輸入中讀入命令(在執行完-c帶的命令之後。)直到輸入exit。

4、-單一的號表明引數執行完畢,並且遮蔽此後所跟引數,後面的所有變數都被看作是檔名。

5、-norc

如果bash是互動的,則不執行個人初始化檔案:-/.bashrc,如果bash作為sh來執行,這個引數預設是關閉的。

6、-noprofile

不執行系統範圍的啟動檔案/etc/profile也不執行個人的啟動檔案-/.bash_profile,-/.bash_login或-/.

profile,預設情況下,bash作為登入的shell時以這些檔案作為啟動檔案。

7、--refile檔名

如果bash是互動的,則以此檔案作為bash的啟動檔案。替代-/.bashrc。

8、-version

在bash開始時顯示此bash的版本號。

9、-quiet

不顯示版本號和其他資訊,這是預設值。

10、-login

啟用bash,偽裝為登入shell。

11、-nobraceexpansion

不執行大括號擴充套件。

12、-nolineediting

在互動狀態下不使用gnu的readline庫去讀取命令。即取消了命令列編輯功能。

13、-posix

改變bash的行為,使其符合posix 1003.2規定的標準。

shell $是什麼意思

10樓:不停的

第一來個意思:假如你剛完自

成登入還沒輸入任何字元之bai前,du

你所看到的遊標所在位置的同zhi一行的dao左邊部份,我們稱之為提示符號(prompt)。$:給一般使用者帳號使用提示符號。

第二個意思:$ 作變數或運算替換。例如:a=hello,b=$a,那麼b也等於hello.

11樓:叉燒帝

shell裡 $有很多意思

1、登入到shell成功後會在游標左側發現$,它是命令提示符,代版表普通帳號登入權,#是代表root帳號登入。

2、$可作為取變數運算子,如echo $path 將會輸出path 變數的內容

3、a=$((1+2))可將a賦值為3,而不是字串「1+2」,也就是運算功能

4、a=$(ls /home) 可將括號內命令執行結果賦值給a,有先執行命令的意思

5、在正規表示式中,$是行尾的意思,如"a$"代表以a為行尾的行

還有如果你用vi的話,一般模式下,$是游標移到行尾的命令

暫時就想到這些。。

shell指令碼里「$?」什麼意思?

12樓:匿名使用者

$? 上個命令抄的退出狀態,

bai或函式的返回值。

例子du1 :

ls 命令沒有找到匹配的結zhi果. 所以返回2 $? 就是2[root@daosg-rhel6-17 etc]# ls /tmp/*.log

ls: cannot access /tmp/*.log: no such file or directory

[root@sg-rhel6-17 etc]# echo $?

2例子2 :

ls 命令找到了結果. 成功返回0 所以$? 就是0[root@sg-rhel6-17 etc]# ls /tmp/*.tmp

/tmp/reminder.tmp

[root@sg-rhel6-17 etc]# echo $?0

13樓:apple哲皓

linux shell 指令碼

中,bai $@ 和$# 分別是:du

$@:表示

所有指令碼參zhi數的內dao容

$#:表示返專回所有指令碼引數的個數。

示例:編寫如

屬下shell指令碼,儲存為test.sh

#!/bin/sh

echo "number:$#"

echo "argume:$@"

執行指令碼:

./test.sh first_arg second_arg說明:給指令碼提供了兩個引數,所以$#輸出的結果是2,$@代表了引數的內容!

shell指令碼什麼意思,shell指令碼是什麼

shell就是作業系統與外部的介面,就是一個命令直譯器,shell指令碼就是放在檔案中的一串shell和作業系統命令,它們可以被重複使用。類unix系統常用bourne shell sh 還有很多,zsh,nash windows的是cmd command shell win7及之後可用的power...

shell指令碼中lcd是什麼意思

shell指令碼中lcd是ftp服務的內建命令,是在本地主機目錄操作的命令。shell script,shell指令碼與windows dos下的批處理相似,也就是用各類命令預先放入到一個檔案中,方便一次性執行的一個程式檔案,主要是方便管理員進行設定或者管理用的。但是它比windows下的批處理更強...

shell指令碼是什麼

shell是計算機bai的殼 通俗一點的解釋是du 如果你要zhi 對計算機發布指令,讓dao計算機去按專照你的意願做事,那麼你就屬需要告訴計算機去做什麼事,怎麼樣去做。一般來說你可以用像windows這樣的圖形作業系統來完成,你只需點點滑鼠,敲敲鍵盤就能夠搞定了。但是在圖形下面的就是shell了,...