十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
本篇文章為大家展示了怎么進(jìn)行shell變量替換,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
#!/bin/bash
#-------------------------------------
#--選出10個(gè)3的倍數(shù),從給定的自然數(shù)開(kāi)始
#-------------------------------------
#--輸入
read -p "請(qǐng)輸入一個(gè)自然數(shù):" Input
if [ $Input -gt 0] ;then
echo "您輸入的是自然數(shù),從此自然數(shù)開(kāi)始的10個(gè)3的倍數(shù)為"
else
echo "您輸入的不是自然數(shù),程序異常退出。"
exit
fi
#--處理并輸出
Count=0
Num=$Input
while [ $Count -lt 10 ]
do
let Num2=$Num%3
if [ $Num2 -eq 0 ] ;then
echo "$Num"
let Count++
fi
let Num++
done
這個(gè)程序一次修改第八行少一個(gè)空格0 后面
zq@zq-py:~$ ./xuanshu.sh
請(qǐng)輸入一個(gè)自然數(shù):6
您輸入的是自然數(shù),從此自然數(shù)開(kāi)始的10個(gè)3的倍數(shù)為
6
9
12
15
18
21
24
27
30
33
zq@zq-py:~$ ./xuanshu.sh
請(qǐng)輸入一個(gè)自然數(shù):0
您輸入的不是自然數(shù),程序異常退出。
zq@zq-py:~$ ./xuanshu.sh
請(qǐng)輸入一個(gè)自然數(shù):-7
您輸入的不是自然數(shù),程序異常退出。
zq@zq-py:~$ ./xuanshu.sh
請(qǐng)輸入一個(gè)自然數(shù):6.6
./xuanshu.sh: 第 8 行: [: 6.6: 需要整數(shù)表達(dá)式
您輸入的不是自然數(shù),程序異常退出。
shell函數(shù) shell變量的替換
shell函數(shù)的兩種表達(dá)形態(tài)
1.函數(shù)名()eg: hello()[echo “hello zq”]
2.function 函數(shù)名() eg:function hello()[echo “hello zq”]
shell函數(shù)的使用
shell函數(shù)使用時(shí)只需書(shū)寫(xiě)函數(shù)名即可eg: hello
#!/bin/bash
zq()
{
echo "zq nihao"
}
function zqq()
{
echo "zqq nihao"
}
zq
zqq
~
zq nihao
zqq nihao
#!/bin/bash
zq()
{
echo "zq nihao"
}
function zqq()
{
echo “$1 你好”
}
zq
zqq 中國(guó)
#!/bin/bash
zq()
{
echo "zq nihao"
}
function zqq()
{
echo “$1 你好”
}
zq
zqq $1 運(yùn)行這個(gè)腳本的時(shí)候 可以指定變量
shell變量的替換
缺省替換:${Var: -value}
若Var變量未被設(shè)置,則臨時(shí)設(shè)置未value eg:${Day: -Sun}
強(qiáng)制替換:${Var: +value}
若Var變量已被設(shè)置,則臨時(shí)設(shè)置為value eg:${Day: +Sun}
zq@zq-py:~$ echo ${Day:-sunday}
sunday
zq@zq-py:~$ echo $Day
zq@zq-py:~$ echo ${Day:monday}
zq@zq-py:~$ Day=saturday
zq@zq-py:~$ echo ${Day:+monday}
monday
zq@zq-py:~$ echo $Day
saturday
缺省賦值替換${Var: =value}
若Var變量未被設(shè)置,則永久設(shè)置為value eg:${Today:=Sun}
zq@zq-py:~$ unset Today
zq@zq-py:~$ echo $Today
zq@zq-py:~$ echo ${Today:=friday}
friday
zq@zq-py:~$ echo $Today
friday
zq@zq-py:~$ echo $Today
friday
zq@zq-py:~$ unset Today
zq@zq-py:~$ echo Today
Today
缺省錯(cuò)誤替換${Var: ?string}
若Var變量未被設(shè)置,則錯(cuò)誤輸出為string eg:${Torrow: ?日期錯(cuò)誤}
zq@zq-py:~$ Torrow
Torrow:未找到命令
zq@zq-py:~$ echo Torrow
Torrow
zq@zq-py:~$ echo ${Torrow:?"no set value"}
bash: Torrow: no set value
zq@zq-py:~$ Torrow=sunday
zq@zq-py:~$ echo ${Torrow:?"no set value"}
sunday
zq@zq-py:~$
單次匹配替換${Var/pattern/string}
若Var變量匹配pattern存在,則單次替換輸出為string
eg:${zq/za/zb}
全局匹配替換${Var//pattern/string}
若Var變量匹配pattern多次,則全部替換輸出為string
eg:${zq//za/zb}
zq@zq-py:~$ echo $Torrow
sunday
zq@zq-py:~$ echo ${Torrow/sun/aun}
aunday
zq@zq-py:~$ echo $Torrow
sunday
zq@zq-py:~$ Torrow=${Torrow}sunday
zq@zq-py:~$ echo $Torrow
sundaysunday
zq@zq-py:~$ echo ${Torrow/sun/aun}
aundaysunday
zq@zq-py:~$ echo ${Torrow/aun/aun}
sundaysunday
zq@zq-py:~$ echo ${Torrow//sun/aun}
aundayaunday
zq@zq-py:~$
上述內(nèi)容就是怎么進(jìn)行shell變量替換,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。