shell的变量以及常见符号
?
shell的變量以及常見符號(hào)
常見變量
不同于其它語(yǔ)言需要先聲明變量,shell的變量直接使用
eg:? ? ? a=15? ? ?
?調(diào)用變量的話 $a 或者 ${a}
?
$? #判斷上一條命令執(zhí)行的是否成功 0成功 返回其他 錯(cuò)誤?
?
寫一個(gè)腳本做演示
執(zhí)行
?
?
$0 #返回腳本的文件名稱??
$1-$9 #返回對(duì)應(yīng)的參數(shù)值? ?
$* #返回所有的參數(shù)值是什么?
$# #返回參數(shù)的個(gè)數(shù)和?
?
?
?
常見的幾個(gè)符號(hào)
> #會(huì)覆蓋原有的內(nèi)容
^c是結(jié)束符號(hào)
?
>> #不會(huì)覆蓋原有的內(nèi)容
?
; #執(zhí)行多條命令
不加;報(bào)錯(cuò)
? ?
?
| #管道符
?
&& #前面的命令執(zhí)行成功,后面的才可以執(zhí)行
|| #前面的命令執(zhí)行失敗,后面的才可以執(zhí)行??
?
"" #會(huì)輸出變量值
'' #輸出本身
??
?
?
`` #輸出命令結(jié)果 eg:a=`date`;echo $a? ?(反撇號(hào))
?
2>/dev/null #錯(cuò)誤輸出到無(wú)底洞(垃圾桶)
1>/dev/null #正確輸出到無(wú)底洞
?
?
秒變計(jì)算器的運(yùn)算符
?
整數(shù):
加:(加號(hào)兩邊一定要加空格 否則是表達(dá)式)
expr 12 + 6? ? ? ? ? ? ? ? ? ? ?expr $a + $b
echo $[12 + 6]? ? ? ? ? ? ? ? ?echo $[a + b]
echo $((12 + 6))? ? ? ? ? ? ?echo $((a + b))
減:
expr 12 - 6? ? ? ? ? ? ? ? ? ? expr $a - $b
echo $[12 - 6]? ? ? ? ? ? ? ?echo $[a - b]
echo $((12 - 6))? ? ? ? ? ? echo $((a - b))
乘:
expr 12 \* 6? ? ? ? ? ? ? ? ? ?expr $a \* $b
echo $[12 * 6]? ? ? ? ? ? ? ?echo $[a * b]
echo $((12 * 6))? ? ? ? ? ? echo $((a * b))
除:
expr 12 / 6? ? ? ? ? ? ? ? ? ?expr $a / $b
echo $((12 / 6))? ? ? ? ? ?echo $((a / b))
echo $[12 / 6]? ? ? ? ? ? ? echo $[a / b]
求余:
expr 12 % 6? ? ? ? ? ? ? ? ? expr $a % $b
echo $((12 % 6))? ? ? ? ? echo $((a % b))
echo $[12 % 6]? ? ? ? ? ? ? echo $[a % b]
小數(shù):
上述方式對(duì)小數(shù)無(wú)效
內(nèi)置的? ‘’bc計(jì)算器”? 計(jì)算
法一:
法二:
?
?
保留小數(shù):
保留多少位小數(shù)可以通過(guò)scale
但是scale只對(duì)除法,取余數(shù),乘冪 有效,對(duì)加減沒有效(用/1變成除法)。
echo "scale=2;(0.2+0.3)/1" | bc #計(jì)算出0.2+0.3的和并保留倆位小數(shù)(整數(shù)位為0,此時(shí)bc計(jì)算器會(huì)省略掉個(gè)位數(shù)的0)
echo "scale=2;(1.2+1.3)/1" | bc #計(jì)算出1.2+1.3的和并保留倆位小數(shù)
?
?
常見的條件判斷
語(yǔ)法:
[ 判斷表達(dá)式 ]
?
文件(夾)或者路徑:?
? -e 目標(biāo)是否存在(exist)
? -d 是否為路徑(directory)
? -f 是否為文件(file)
? [ -e foer.sh ] || touch foer.sh? ?#判斷當(dāng)前目錄下是否有foer.sh這個(gè)文件,假如沒有就創(chuàng)建出foer.sh文件
?
?
權(quán)限:
?-r 是否有讀取權(quán)限(read)
?-w 是否有寫入權(quán)限(write)
?-x 是否有執(zhí)行權(quán)限(excute)
? [ -x 123.txt ] && echo '有執(zhí)行權(quán)限'? ?
?
?
整數(shù)值(int型(必須 )):
-eq 等于(equal)
-ne 不等于(not equal)
-gt 大于(greater than)
-lt 小于(lesser than)
-ge 大于或者等于(greater or equal)
-le 小于或者等于(lesser or equal)
注意:不能用><=
?
小數(shù)(浮點(diǎn)型):
利用bc計(jì)算器? 特性
[ `echo '1.2 < 1.3' | bc` -eq 1 ] && echo '小于'
?`echo '1.2 < 1.3' | bc? ?返回1? ?
?`echo '1.2 < 1.3' | bc` -eq 1? ? ?等于1 成立??
?&& echo '小于'? ?返回小于
??
字符串:
= 相等
!= 不相等
[ 'kkkkk' != 'kkkk' ] && echo '不等于'??
?
?
?
shell腳本實(shí)例
實(shí)例1:
?
放入crt跑
追加符號(hào)
?
粘貼
執(zhí)行并傳參
運(yùn)行錯(cuò)誤!
?并未打印出? ? 12不等于13
? 因?yàn)闆]有用雙引號(hào)??
? 使用vi? pandun.sh 修改
???
?
?實(shí)例2:?
? vi pandun.sh
?
??
?
轉(zhuǎn)載于:https://www.cnblogs.com/hmm1995/p/10418361.html
總結(jié)
以上是生活随笔為你收集整理的shell的变量以及常见符号的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java服务端项目开发规范
- 下一篇: codeforces global ro