shell 分支語句基礎03

2021-08-11 02:39:25 字數 1962 閱讀 2972

printf 命令介紹

printf 相比於echo 的移植性更好。且可以格式化字串的輸出樣式。

printf "%-10s %-8s %-4s\n" 姓名 性別 體重kg  

printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234

printf "%-10s %-8s %-4.2f\n" 楊過 男 48.6543

printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876

解釋:%-10s 指乙個寬度為10個字元(-表示左對齊,沒有-預設為右對齊)

%4.2f 指格式化為小數,.2指保留兩位小數

常用的格式替代符:

%d:decimal 對應位置引數必須是十進位制整數,否則抱錯

%s:string  字串--對應位置引數必須是字串

%c:char    字元 對應位置引數必須是字串或者字元型

%f:float   浮點 對應位置引數必須是數字

shell流程控制

在shell中如果有else分支語句,則在分支中必須有執行語句,否則會報錯

語法格式:

if condition

then

command1

command2

fieg:

a=5b=4

if [ $a != $b ]

then

echo "the number is not equal"

fiif else 語句的使用直接看例項

a=87

if [ $a -gt 90 ]

then

echo "the grade is perfect "

elif [ $a -gt 80 ]

then

echo "the grade is good "

elif [ $a -gt 60 ]    

then

echo "the grade is  generic"

else

echo "the grade is bad!"

fifor迴圈語句

與其它程式語言類似,shell支援for迴圈

一般格式為:

for var in arguments...

docommands

done

eg:for loop in 1 "hello" 'a' 14.5

doecho "the argument is $"

done

while 迴圈語句

while conditon

docommand

done

在舉例之前我們需要了解乙個 let命令

let命令是bash中用於計算的工具,用於執行乙個或多個表示式,變數計算中不需要加上$來表示變數

如果表示式中包含了空格或者其它特殊字元則必須引起來。

例項:自加操作: let no++

自減操作: let no--

簡寫形式: let no+=10, let no-=20

eg:let a=5+4    #注意空格問題

echo $a     #9

b=`expr 6 + 7`

echo $b    #13

let命令和expr命令的比較

let 不需要空格隔開表示式的各個字元。而 expr 後面的字元需要空格隔開各個字元

知道了let命令的使用,我們現在可以使用while語句了

需要輸出1-10這幾個數字

number=1

while(($<=10))

doecho $

let "number++"

done

case語句

語法 :

case value in

1) echo "abc...."

;;2)

echo "def...."

esac

shell單分支if語句

一 單分支if條件語句 if 條件判斷式 then 程式 fi 或者 if 條件判斷式 then 程式 fi二 語法解析 1 if語句使用fi結尾,和一般語言使用大括號結尾不同。2 條件判斷式 就是使用test命令判斷,所以中括號和條件判斷式之間必須有空格。3 then後面跟符合條件之後執行的程式,...

Shell多分支if語句

一 語法 if 條件判斷式 then 當條件判斷式1成立時,執行程式1 elif 條件判斷式2 then 當條件判斷式2成立時,執行程式2 省略更多條件 else 當所有條件都不成立時,最後執行程式 fi 二 實現計算器 bin bash read t 30 p please input num1 ...

shell 分支語句 case

case語句主要適用於 某個變數存在多種取值,需要對其中的每一種取值分別執行不同的命令序列。這種情況和多分支if語句非常相似。只不過if要判斷多個不同的條件而case語句只判斷乙個變數的不同取值。case 變數值 in 模式1 命令序列1 模式2 命令序列2 預設命令序列 esac在上述結構中,關鍵...