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

2021-03-09 16:49:57 字數 3408 閱讀 7561

1樓:匿名使用者

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

例子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

2樓:徐未知

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

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

if [ $? -ne 0 ]

then

#指令碼不正常退出

exit 1fi

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樓:匿名使用者

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

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

7樓:apple哲皓

linux shell 指令碼

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

$@:表示

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

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

示例:編寫如

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

#!/bin/sh

echo "number:$#"

echo "argume:$@"

執行指令碼:

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

unix 下shell指令碼中的$?代表什麼意思啊?

8樓:絲雪飄飄

$?是指的上條命令執行的狀態。。。。執行成功或者不成功。。。

示例一:在命令列裡使用:

tux@tux-desktop:~$ cd /no_such_dirbash: cd: /no_such_dir: no such file or directory

tux@tux-desktop:~$ echo $?

1tux@tux-desktop:~$ cd /boot/tux@tux-desktop:/boot$ echo $?

0示例二:在shell指令碼裡使用

#!/bin/bash

cd ~/test/aaa 1>/dev/null 2&>1if [ ! $? -eq 0 ]

then

echo "沒有這個目錄!!"

exit

firm -rf *

當然還有:

$$ $* $@ $1 $# 等等

9樓:

用來取變數的值的

最好是到網上學習shell

語法很簡單的

就等於windows的批處理.bat檔案

就是有些關鍵字要記

shell指令碼中的$#表示什麼意思呢?

10樓:匿名使用者

shell指令碼執行過程中 把第乙個字串作為指令碼名稱(或程式名稱)處理,第

二、第三。。。都作為引數處理。shell會將這些引數預設的賦給變數 1 2 3 。。。所以當你echo $1 $2的時候看到的就是引數變數的值。

解答一下$#的問題:這裡$#是計算輸入引數的個數還有一些有用的演算法:$@ 代表所有輸入的引數;$* 同上

11樓:匿名使用者

以下是一些shell執行的特殊變數,供你參考:

$0 這個程式的執行名字

$n 這個程式的第n個引數值,n=1..9$* 這個程式的所有引數

$# 這個程式的引數個數

$$ 這個程式的pid

$! 執行上乙個背景指令的pid

$? 執行上乙個指令的返回值

$@ 跟$*類似,但是可以當作陣列用 。

因此,如你所說:在shell中,$0,$1,$2應該表示的分別是shell名,shell檔案接受的第乙個引數、第二個引數完全正確。

12樓:

特殊的變數

$# :代表後接的引數『個數』

./script.sh opt1 opt2 opt3 opt4

$# ---> 4

shell指令碼解答,shell 指令碼裡 什麼意思

shell 指令碼裡 什麼意思 樓上bai正解,但不是很全,不一du定是執行指令碼,多指執行zhi命令,dao一般在程式裡面會對其進行判斷內,如果發現上。容一行的命令執行有誤,該指令碼就會終止執行。if ne 0 then 指令碼不正常退出。exit 1fi 用linux試編寫乙個shell指令碼完...

shell指令碼裡的函式怎麼呼叫

shell中的函式,要在定義這個函式的指令碼中進行呼叫!bin sh echo line echo hello 在這裡呼叫 將全部 寫入test.sh就可以了echo call echo hello echo hello echo call echo line echo line 在命令列下執行 t...

指令碼錯誤是什麼意思,shell指令碼中 是什麼意思

internet explorer 有時會彈出乙個對話方塊告訴你網頁的指令碼出現錯誤,是否需要繼續執行。這個資訊對於 開發者來說是很有用的,但對於絕大多數的使用者來說,這個指令碼出錯的提示資訊是完全沒有用處的。指令碼錯誤 形成的原因是因為訪問者所使用的瀏覽器不能完全支援頁面裡的指令碼,而且出現頻率並...