shell指令碼都是以#!/bin/bash開頭;這是固定的寫法,其中/bin/bash是bash命令的路徑。那麼Linux系統shell工具如何列印輸出呢?跟yjbys小編一起來看看吧!
一般都會通過chmod授予shell指令碼的可執行許可權。
在shell指令碼中的列印輸出通常會有echo和printf兩種,前者會自動換行。
在shell中如果用雙引號("")作為列印輸出的內容時,如果雙引號中有特殊字元需要在特殊字元前加上轉義字元,當然也可以使用單引號或者不使用引號直接輸出,使用單引號或者不使用就不需要用到轉義字元。
格式替代符
有一些常用的格式替代符會經常在列印輸出中被用到,格式替代符只能用在printf輸出中。
%-5s:表示5個字元寬度,其中的-表示左對齊
%-4.2f:其中的f表示浮點型,4.2代表長度為4個字元且小數點2位,如果小數點超過2會進行四捨五入,-表示左對齊。
整形:
%d:整數的引數會被轉成一有符號的十進位制數字
%u:整數的引數會被轉成一無符號的十進位制數字
%o:整數的引數會被轉成一無符號的八進位制數字
%x:整數的引數會被轉成一無符號的十六進位制數字,並以小寫abcdef表示
%X:整數的引數會被轉成一無符號的十六進位制數字,並以大寫ABCDEF表示
浮點型數:
%fdouble型的引數會被轉成十進位制數字,預設取小數點以下六位,四捨五入
%edouble型的引數以指數形式列印,有一個數字會在小數點前,六位數字在小數點後,而在指數部分會以小寫的e來表示.
%E與%e作用相同,唯一區別是指數部分將以大寫的E來表示.
%gdouble型的引數會自動選擇以%f或%e的格式來列印,其標準是根據欲列印的數值及所設定的有效位數來決定.
%G與%g作用相同,唯一區別在以指數形態列印時會選擇%E格式.
字元及字串:
%c讀字串的`第一個字元
%s輸出指定寬度的字元內容.
%p如果是引數是"void*"型指標則使用十六進位制格式顯示
列印輸出
在寫指令碼的時候更多的會使用echo作為列印輸出,且習慣性的會使用雙引號。
echo
[root@localhosttmp]#echo"helloword"
helloword
printf
預設printf是不換行的
[root@localhosttmp]#printf"helloword"
helloword[root@localhosttmp]#
需要換行加上n引數
[root@localhosttmp]#printf"hellowordn"
helloword
[root@localhosttmp]#
編寫shell指令碼
#!/bin/bash
printf"%-5s%-10s%-4sn"NoNameMark;
printf"%-5s%-10s%-4.2fn"1aaa10.111;
printf"%-5s%-10s%-4.2fn"2bbb20.146;
授予指令碼執行許可權:chmodu+
如果使用echo就不能用格式替代符
#!/bin/bash
echoNoNameMark;
echo1aaa10.111;
echo2bbb20.146;
注意事項
在echo,printf中使用-e,-n引數時,-e,-n應該出現在命令列其它字元之前。
-e:如果要在echo的雙引號使用轉義序列作為引數得需要使用-e引數
-n:忽略末尾的換行符
不使用-e引數
[root@localhosttmp]#echo"1n2"
1n2
使用-e引數
[root@localhosttmp]#echo-e"1n2"
轉義序列:
/n:換行
/t:tab鍵
彩色輸出
字型顏色包括:0=重置,30=黑色,31=紅色,32=綠色,33=黃色,34=藍色,35=洋紅,36=青色,37=白色
背景顏色包括:0=重置,40=黑色,41=紅色,42=綠色,43=黃色,44=藍色,45=洋紅,46=青色,47=白色
echo-e"e[1;32mhelloworde[0m"
e[1;32m:將字型顏色設為綠色,e[0m:將顏色重置