命令替換
testing=`date`
testing2=$(
date)
數字運算
test3=$[
1+5 ]#只支援整數運算
var1=10.46
var2=43.67
var3=33.2
var4=71
var5=$( bc<1.txt
scale=4
a1=($var1*$var2)
b1=($var3*$var4)
a1+b1
eof)#浮點型
if-then 只能測試退出狀態碼語句
if -then語句
if
command
then
commands
fi
if-then-else語句
if
command
then
commands
else
commands
fi
if-then-elif-then
if command
then
commands
elif commands
then
commands
fi
test語句
if test condition
then
commands
else
commands
fi#若沒有 condition,則返回狀態碼為非零,直接執行else
數值比較
n1 -eq n2 等於
n1 -ge n2 大於等於
n1 -gt n2 大於
n1 -le n2 小於等於
n1 -lt n2 小於
if [$a
-gt5]
then
echo
"大於"
fi
比較字串
str1 = str2 檢查 str1 是否和 str2 相同
str1 != str2 檢查 str1 是否和 str2 不同
str1 < str2 檢查 str1 是否比 str2 小
str1 > str2 檢查 str1 是否比 str2 大
-n str1 檢查 str1 的長度是否非0
-z str1 檢查 str1 的長度是否為0
var1="abcd"
var2="abcd"
var3="ef"
var4="ef"
if [ -z $var1 ]
then
echo
"dengyu"
else
echo
"budeng"
fi
比較檔案
-d file 檢查 file 是否存在並是乙個目錄
-e file 檢查 file 是否存在
-f file 檢查 file 是否存在並是乙個檔案
-r file 檢查 file 是否存在並可讀
-s file 檢查 file 是否存在並非空
-w file 檢查 file 是否存在並可寫
-x file 檢查 file 是否存在並可執行
-o file 檢查 file 是否存在並屬當前使用者所有
-g file 檢查 file 是否存在並且預設組與當前使用者相同
file1 -nt file2 檢查 file1 是否比 file2 新
file1 -ot file2 檢查 file1 是否比 file2 舊
復合條件
[ condition1 ] && [ condition2 ]
[ condition1 ] || [ condition2 ]
(( a+
+))雙
括號提供
數值高階
計算[[
a ++
))雙括
號提供數
值高階計
算[
[a=r* ]] 雙方括號提供字串高階功能,如模式匹配
case:
case
variable
inpattern1 | pattern2)
commands1;;
pattern3)
commands2;;
*) default commands;;
esac
for命令
list="hello world"
list=$list
" girl"
#注意girl前的空格
for str in
$list
doecho
$str
done
更改字段分隔符
file="/etc/passwd"
ifs=$'\n'
for state in $( head -30
$file )
doecho
$state
done
~
如果要指定多個 ifs 字元,只要將它們在賦值行串起來就行。
ifs=$'\n':;"
這個賦值會將換行符、冒號、分號和雙引號作為字段分隔符
shell指令碼結構化之迴圈命令
迴圈是程式設計的乙個重要部分,bash shell提供了三種可用於指令碼中的循壞命令 for 命令 while命令 until 命令 這些都沒有好講的,注意下格式就行了,看兩個例項 bin bash ifs for folder in path doecho folder forfile in fo...
shell指令碼的結構化條件判斷命令
程式可以說就是結構化加上演算法,現在就來講講shell指令碼的結構化命令 結構化命令允許你改變shell指令碼的正常執行流。最基本的結構化命令是if then語句。也可以擴充套件if then語句,加入if then else語句。如果希望在測試失敗時加上額外的測試,if then elif語句。i...
linux結構化命令 for迴圈
for迴圈命令基本格式 for var in list do commonds done 測試指令碼 執行結果如下 讀取列表中的複雜值 修改test3.sh如下,執行結果如下 如上可以看到,第二次迴圈的時候,列印的字沒有分割開,而是多個單詞 dont know thisll 而且單引號也沒有了。這是...