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