Shell學習【printf與echo】

13545163656發表於2019-04-08

Shell printf命令


echo命令主要用於字串的輸出,可以是不要引號但不支援轉義,雙引號可用於跳脫字元,


printf命令也是輸出命令但是要比echo 的移植性好,制定字串的寬度,左右對其方式;可以格式控制字元,指定引數列表,引數空格區分,語法結構:

printf  format-string  [arguments...]


#!/bin/bash
#author:zrc
#自動換行的對比
echo  -e "OK! \n" # -e 開啟轉義 \n 開啟換行
echo "is a echo"
echo "----------------------------"
printf "good , shell,\n,python"
#輸出:
OK! 
is a echo
----------------------------
good , shell,
,python


printf格式化

#!/bin/bash
#author:zrc
printf "%-10s %-8s %-4s\n" id name age
printf "%-10s %-8s %-4s\n" 1 jeey 18
printf "%-10s %-8s %-4.2f\n" 2 tom 19
printf "%-10s %-8s %-4.2f\n" 3 king 20
printf "%-10s %-8s %-4.2f\n" 4 quren 33.333
#輸出
id         name     age 
1          jeey     18  
2          tom      19.00
3          king     20.00
4          quren    33.33
%-10s %-8s %-4s\n 都是針對引數類別的格式化
%-10s  -- 第一位引數必須是string字串(-10 表示寬度為10個字元且左對齊,沒有-表示右對齊;如果不是字元和字串 就報錯 )
%-8s   -- 第二位引數必須是string字串(-8 表示寬度為8個字元且左對齊,沒有-表示右對齊;如果不是字元和字串 就報錯 )
%-4s   -- 第三位引數必須是string字串(-4 表示寬度為4個字元且左對齊,沒有-表示右對齊;如果不是字元和字串 就報錯 )
%-4.2f -- 第三位引數必須是float浮點(-4.2 表示寬度為4個格式化小數,保留後面兩位,沒有-表示右對齊;如果不是整數 就報錯 )


printf案例

更多案例:

#!/bin/bash
#author:zrc
#沒有引號
printf %s'\n' aaaaa 
#單引號
printf '%d %s\n' '123456' 'aaaaa'
#雙引號
printf "%d %s\n" '123456' 'bbbbb'
#超過指定參format-string數,會被重用
printf "%d %s\n" '123456' 'aaaaa' '456789' 'ccccc'
#如果沒有引數,那麼%s用NULL代替,%d用0代替
printf "%s --- %d"'\n'
#%c 自動擷取字串的第一個字元作為結果輸出
printf "%d %c\n" '123456' 'bbbbb'
%d %s %c %f  都是針對引數類別的格式化
%d     -- 十進位制整數(對應引數位必須是整數,如果不是就報錯 )
%c     --Char字元(對應引數位必須是字串或者字元型,如果不是就報錯 )


prinf轉義符

序列 說明
\a 警告字元,通常為ASCII的BEL字元
\b 後退
\c 抑制(不顯示)輸出結果中任何結尾的換行字元(只在%b格式指示符控制下的引數字串中有效),而且,任何留在引數裡的字元、任何接下來的引數以及任何留在格式字串中的字元,都被忽略
\f 換頁(formfeed)
\n 換行
\r 回車(Carriage return)
\t 水平製表符
\v 垂直製表符
\\ 一個字面上的反斜槓字元


Shell echo命令

#!/bin/bash
#author:zrc
#顯示字串
echo "this is string"
#顯示跳脫字元
echo "\"this is string\""
#顯示結果定向到檔案,符號>>追加到檔案
echo "this is string" > file
#顯示輸入變數
read name 
echo  -e "this is ${name} \n"  # -e開啟轉義 -n換行
echo  -e "this is ${name} \c"  # -e開啟轉義 -c不換行
read  password -p "請輸入一段文字:" -n 6 -t 5 -s
echo -e "\n password is $password"
引數說明:
 -p 輸入提示文字
 -n 輸入字元長度限制(達到6位,自動結束)
 -t 輸入限時
 -s 隱藏輸入內容


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31441024/viewspace-2640652/,如需轉載,請註明出處,否則將追究法律責任。

相關文章