算術運算
相對于其他編程語言來說在bash里面不能直接以變量加上變量的形式來表現;比如我們先聲明兩個變量num1和num2然后再做運算。
num1=2num2=3echo "$num1+$num2"2+3
這里我們顯示的結果直接為2+3只是做了變量的替換,而不是做兩個變量的加法運算;在bash里面變量默認是以字符串類型來存儲的;就算我們在這里聲明的這兩個變量為整數也不會做運算;declare命令-i可以聲明我們定義的變量為整型bash也只會做變量替換;
declare -i num3=9declare -i num4=1echo “$num3+$unm4”9+1
對于bash來說要做算數運算必須使用特殊的算術運算格式:
1.使用let命令;
例如
let $num1+$num2
這里不會顯示任何數據let命令默認是不會輸出結果至屏幕的;所以我們這里需要做變量賦值;將$num1+$num2的運算后的值,賦值個另外一個變量sum;
let $sum=$num1+$unm2echo “$sum”5
2.算術運算表達式用[]直接賦值給一個變量;這里可以賦值也可以直接使用
echo $[$num3+$num4]10
也可以做賦值;
$sum=$[$num3+$num4]echo "$sum"10
3.使用兩個小括號和[]用法相似
$sum=$(($num3+$num4))echo "$sum"
4.使用expr命令進行運算;將變量和運算符做參數傳遞給expr做運算;
$sum=$(expr $num3 + $num4)
注意這里既然是作為命令的參數運算的那個參數之間需要空格;
bash的運算符有+,-,,/,*(次方),%(取模)
乘法符號在bash里面有特殊含義,所以在有些場景里面需要使用轉義符
文件查找
在文件系統上查找符合條件的文件可使用的命令有:locate,find
locate
文件查找命令,其工作原理是依賴于事先構建好的索引庫.系統性的歷遍文件系統的所有文件路徑下的文件來構建這個庫,用戶在查找文件的時候不是直接去歷遍目標路徑而是直接來搜索這個索引庫;以節省系統資源;但是我們手動去更新索引庫的時候會消耗大量資源;
他的工作特性是:查找熟讀快,模糊查找,非實時查找;
手動更新索引庫updatedb
locate:查找文件系統上符合條件的文件 locate [OPTION]... PATTERN... -b:至匹配路徑中的基名 -c:統計出共多少個符合條件的文件 -r:基本使用正則表達式
find命令
實時查找工具,通過遍歷指定的起始目錄下文件系統層級結構完成文件查找;與前面locate不同的是find是屬于實時查找,可以指定搜索目標的起始路徑,默認的是當前目錄;find的匹配條件是精確查找,可以根據文件名,大小,類型,從屬關系,權限等;而且可以對符合條件的文件作出刪除等操作,默認的是輸出至標準輸出;
新聞熱點
疑難解答