91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

大港区| 德保县| 永宁县| 邵阳市| 景宁| 镇雄县| 洛阳市| 民县| 湘西| 金溪县| 武威市| 始兴县| 扎兰屯市| 陇川县| 和林格尔县| 桑植县| 萨嘎县| 集安市| 湖口县| 泸水县| 斗六市| 闸北区| 大渡口区| 阿勒泰市| 祁连县| 佛坪县| 杂多县| 广安市| 息烽县| 江陵县| 淮滨县| 拜泉县| 苏州市| 轮台县| 平罗县| 英吉沙县| 丹巴县| 南阳市| 五家渠市| 湘阴县| 大同县|