中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

shell傳參

發布時間:2020-08-08 13:04:28 來源:ITPUB博客 閱讀:149 作者:595117995 欄目:建站服務器

大家都知道普通的bash命令后邊可以跟任意的參數,那我們自己編寫的腳本是否也支持傳遞參數呢?答案當然是肯定的

執行“vim test.sh”創建一個新的shell腳本。腳本test.sh的內容如下:

#!/bin/sh

name=$1

echo "the ${name} are great man!"

給新創建的test.sh的腳本賦可執行權限,命令為“chmod +x test.sh”

執行'./test.sh "xiao wang" '命令,可以看到自己編寫腳本的結果“the xiao wang are great man!”

"name=$1"中$1為系統提供的位置參數,$0代表程序的名稱(./test.sh),[$1 $2...]從1開始為傳遞的參數。linux系統除了提供位置參數還提供內置參數,所有內置參數如下: 

$0 ----當前腳本文件名

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

$# ----傳遞給腳本或函數的參數個數

$* ----傳遞給腳本或函數的所有參數,當它被雙引號(" ")包含時,"$*" 會將所有的參數作為一個整體,以"$1 $2 ... $n"的形式輸出所有參數

$@ ----傳遞給腳本或函數的所有參數,當它被雙引號(" ")包含時,與$*稍有不同,"$@" 會將各個參數分開,以"$1" "$2" … "$n" 的形式輸出所有參數

$* 和$@不被雙引號(" ")包含時,都以"$1" "$2" … "$n" 的形式輸出所有參數

下面寫個小程序實踐一下$* 和$@

$? ----上一個命令的退出狀態,或函數的返回值,如果正常退出則返回0,反之為非0值

$$ ----當前shell進程pid,對于shell腳本,就是這些腳本所在的進程ID

$! ----上一個命令的pid

新建test.sh chmod +x test.sh 執行./test.sh "a" "b" "c" "d",觀察打印結果
#!/bin/bash
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

打印結果:
$*= 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
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

隆尧县| 贵州省| 泗阳县| 正定县| 巴里| 土默特左旗| 东阿县| 临清市| 九龙城区| 江孜县| 广宗县| 纳雍县| 虹口区| 廊坊市| 和政县| 左贡县| 大丰市| 平泉县| 遂川县| 张家界市| 洛川县| 垫江县| 双桥区| 马尔康县| 娄烦县| 贵南县| 正宁县| 泽库县| 翁源县| 嵊州市| 巴里| 互助| 灵武市| 曲阜市| 四会市| 永嘉县| 凤冈县| 凌海市| 田林县| 华池县| 海城市|