shell中的變量(二)

特殊變量

1.$n

語法:$n
功能描述:n為數(shù)字,$0代表該腳本名稱,$1-$9代表第一到第九個(gè)參數(shù),十以上的參數(shù)需要用大括號(hào)包含,如${10}
案例:
(1)創(chuàng)建parameter.sh :

[root@localhost shelldata]# touch parameter.sh
[root@localhost shelldata]# chmod u+x parameter.sh 

(2)編輯腳本為:

#!/bin/bash
echo "下面輸出:腳本名稱+第一個(gè)參數(shù)名+第二個(gè)參數(shù)名(參數(shù)在調(diào)用腳本時(shí)給值)"
echo "$0 $1 $2"

(3)調(diào)用腳本:

[root@localhost shelldata]# ./parameter.sh 
下面輸出:腳本名稱+第一個(gè)參數(shù)名+第二個(gè)參數(shù)名(參數(shù)在調(diào)用腳本時(shí)給值)
./parameter.sh  

[root@localhost shelldata]# ./parameter.sh hello world
下面輸出:腳本名稱+第一個(gè)參數(shù)名+第二個(gè)參數(shù)名(參數(shù)在調(diào)用腳本時(shí)給值)
./parameter.sh hello world
2.$#

語法:$#
功能描述:獲取所有輸入?yún)?shù)個(gè)數(shù),常用于循環(huán)
案例:
(1)編輯parameter.sh 為

#!/bin/bash
echo "下面輸出:腳本名稱+第一個(gè)參數(shù)名+第二個(gè)參數(shù)名(參數(shù)在調(diào)用腳本時(shí)給值)"
echo "$0 $1 $2"
echo "參數(shù)個(gè)數(shù):" $#

(2)調(diào)用:

[root@localhost shelldata]# ./parameter.sh 
下面輸出:腳本名稱+第一個(gè)參數(shù)名+第二個(gè)參數(shù)名(參數(shù)在調(diào)用腳本時(shí)給值)
./parameter.sh  
參數(shù)個(gè)數(shù): 0

[root@localhost shelldata]# ./parameter.sh hello world
下面輸出:腳本名稱+第一個(gè)參數(shù)名+第二個(gè)參數(shù)名(參數(shù)在調(diào)用腳本時(shí)給值)
./parameter.sh hello world
參數(shù)個(gè)數(shù): 2

[root@localhost shelldata]# ./parameter.sh hello world my
下面輸出:腳本名稱+第一個(gè)參數(shù)名+第二個(gè)參數(shù)名(參數(shù)在調(diào)用腳本時(shí)給值)
./parameter.sh hello world
參數(shù)個(gè)數(shù): 3

由上面可以看出$#獲取的參數(shù)個(gè)數(shù)為實(shí)際傳入的參數(shù)個(gè)數(shù)。

3. $* , $@

語法及功能:
\$* : 這個(gè)變量代表命令行中所有的參數(shù),$*把所有的參數(shù)看成一個(gè)整體

\$@ : 這個(gè)變量也代表命令行中所有的參數(shù),不過$@把每個(gè)參數(shù)區(qū)分對(duì)待
案例:
(1)編輯parameter.sh 為

#!/bin/bash
echo "下面輸出:腳本名稱+第一個(gè)參數(shù)名+第二個(gè)參數(shù)名(參數(shù)在調(diào)用腳本時(shí)給值)"
echo "$0 $1 $2"
echo "參數(shù)個(gè)數(shù):" $#
echo $*
echo $@

(2)調(diào)用

[root@localhost shelldata]# ./parameter.sh hello world mytest
下面輸出:腳本名稱+第一個(gè)參數(shù)名+第二個(gè)參數(shù)名(參數(shù)在調(diào)用腳本時(shí)給值)
./parameter.sh hello world
參數(shù)個(gè)數(shù): 3
hello world mytest
hello world mytest
4.$?

語法:$?
功能描述:最后一次執(zhí)行的命令的返回狀態(tài)。如果這個(gè)變量的值為0,證明上一個(gè)命令正確執(zhí)行;如果這個(gè)變量的值為非0(具體是哪個(gè)數(shù),由命令自己來決定),則證明上一個(gè)命令執(zhí)行不正確了。
案例:

[root@localhost shelldata]# echo 123
123
[root@localhost shelldata]# echo $?
0

[root@localhost shelldata]# 123
-bash: 123: command not found
[root@localhost shelldata]# echo $?
127
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容