日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Shell特殊变量:Shell $0,$#,$*,$@,$?,$$和命令行参数

發布時間:2024/1/23 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Shell特殊变量:Shell $0,$#,$*,$@,$?,$$和命令行参数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

特殊變量列表

?

變量含義
$0當前腳本的文件名
$n

傳遞給腳本或函數的參數。n是一個數字,表示第幾個參數。例如,第一個參數是$1,第二個參數是$2.

$#傳遞給腳本或函數的參數個數
$*傳遞給腳本或函數的所有參數。
$@傳遞給腳本或函數的所有參數。被雙引號("")包含時,與$*稍有不同,下面將會講到。
$?上個命令的退出狀態,或函數的返回值。
$$

當前Shell進程ID。對于Shell腳本,就是這些腳本所在的進程ID。

命令行參數

? 運行腳本時傳遞給腳本的參數稱為命令行參數。命令行參數用$n表示,例如,$1表示第一個參數,$2表示第二個參數,依次類推。

請看下面的腳本:

#!/bin/bash

echo "File Name: $0"

echo "First Parameter : $1"

echo "First Parameter : $2"

echo "Quoted Values: $@"

echo "Quoted Values: $*"

echo "Total Number of Parameters : $#"

運行結果:

$./test.sh Zara Ali

File Name : ./test.sh

First Parameter : Zara

Second Parameter : Ali

Quoted Values : Zara Ali

Quoted Values: Zara Ali

Total Number of Parameters : 2

?

$*和$@的區別

$*和$@都表示傳遞給函數或腳本的所有參數,不被雙引號(" ")包含時,都以"$1" "$2" ... "$n"的形式輸出所有參數。

下面的例子可以清楚的看到$*和$@的區別:

!/bin/bash

echo "\$*=" $*

echo "\"\$*\"=" "$*"

echo "\$@=" $@

echo "\"\$@\"=" "$@"

echo "print each param from \$*"

for var in $*

do

echo "$var"

done

echo "print each param from \$@"

for var in $@

do?

echo "$var"

done

echo "print each param from \"\$*\""

for var in "$*"

do

echo "$var"

done

echo "print each param from \"\$@\""

for var in "$@"

do

echo "$var"

done

執行./test.sh "a" "b" "c" "d",看到下面的結果:

$*= a b c d

"$*"= a b c d

$@= a b c d

"$@"= a b c d

print each param from $*

a

b

c

d

print each param from $@

a

b

c

d

print each param from "$*"

a b c d

print each param from "$@"

a

b

c

d

退出狀態

$?可以獲取上一個命令的退出狀態。所謂退出狀態,就是上一個命令執行后的返回結果。

退出狀態是一個數字,一般情況下,大部分命令執行成功會返回0,失敗返回1.

不過,也有一些命令返回其他值,表示不同類型的錯誤。

下面例子中,命令成功執行:

$./test.sh Zara Ali

File Name : ./test.sh

First Parameter : Zara

Second Parameter : Ali

QuotedValues : Zara Ali

Quoted Values: Zara Ali

Total Number of Parameters : 2

$echo $?

0

?

總結

以上是生活随笔為你收集整理的Shell特殊变量:Shell $0,$#,$*,$@,$?,$$和命令行参数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。