您好,登錄后才能下訂單哦!
echo命令主要用于字符串的輸出,可以是不要引號但不支持轉(zhuǎn)義,雙引號可用于轉(zhuǎn)義字符,
printf命令也是輸出命令但是要比echo 的移植性好,制定字符串的寬度,左右對其方式;可以格式控制字符,指定參數(shù)列表,參數(shù)空格區(qū)分,語法結(jié)構(gòu):
printf format-string [arguments...]
#!/bin/bash #author:zrc #自動換行的對比 echo -e "OK! \n" # -e 開啟轉(zhuǎn)義 \n 開啟換行 echo "is a echo" echo "----------------------------" printf "good , shell,\n,python" #輸出: OK! is a echo ---------------------------- good , shell, ,python
#!/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 都是針對參數(shù)類別的格式化 %-10s -- 第一位參數(shù)必須是string字符串(-10 表示寬度為10個字符且左對齊,沒有-表示右對齊;如果不是字符和字符串 就報錯 ) %-8s -- 第二位參數(shù)必須是string字符串(-8 表示寬度為8個字符且左對齊,沒有-表示右對齊;如果不是字符和字符串 就報錯 ) %-4s -- 第三位參數(shù)必須是string字符串(-4 表示寬度為4個字符且左對齊,沒有-表示右對齊;如果不是字符和字符串 就報錯 ) %-4.2f -- 第三位參數(shù)必須是float浮點(-4.2 表示寬度為4個格式化小數(shù),保留后面兩位,沒有-表示右對齊;如果不是整數(shù) 就報錯 )
更多案例:
#!/bin/bash #author:zrc #沒有引號 printf %s'\n' aaaaa #單引號 printf '%d %s\n' '123456' 'aaaaa' #雙引號 printf "%d %s\n" '123456' 'bbbbb' #超過指定參format-string數(shù),會被重用 printf "%d %s\n" '123456' 'aaaaa' '456789' 'ccccc' #如果沒有參數(shù),那么%s用NULL代替,%d用0代替 printf "%s --- %d"'\n' #%c 自動截取字符串的第一個字符作為結(jié)果輸出 printf "%d %c\n" '123456' 'bbbbb'
%d %s %c %f 都是針對參數(shù)類別的格式化 %d -- 十進(jìn)制整數(shù)(對應(yīng)參數(shù)位必須是整數(shù),如果不是就報錯 ) %c --Char字符(對應(yīng)參數(shù)位必須是字符串或者字符型,如果不是就報錯 )
序列 | 說明 |
---|---|
\a | 警告字符,通常為ASCII的BEL字符 |
\b | 后退 |
\c | 抑制(不顯示)輸出結(jié)果中任何結(jié)尾的換行字符(只在%b格式指示符控制下的參數(shù)字符串中有效),而且,任何留在參數(shù)里的字符、任何接下來的參數(shù)以及任何留在格式字符串中的字符,都被忽略 |
\f | 換頁(formfeed) |
\n | 換行 |
\r | 回車(Carriage return) |
\t | 水平制表符 |
\v | 垂直制表符 |
\\ | 一個字面上的反斜杠字符 |
#!/bin/bash #author:zrc #顯示字符串 echo "this is string" #顯示轉(zhuǎn)義字符 echo "\"this is string\"" #顯示結(jié)果定向到文件,符號>>追加到文件 echo "this is string" > file #顯示輸入變量 read name echo -e "this is ${name} \n" # -e開啟轉(zhuǎn)義 -n換行 echo -e "this is ${name} \c" # -e開啟轉(zhuǎn)義 -c不換行 read password -p "請輸入一段文字:" -n 6 -t 5 -s echo -e "\n password is $password" 參數(shù)說明: -p 輸入提示文字 -n 輸入字符長度限制(達(dá)到6位,自動結(jié)束) -t 輸入限時 -s 隱藏輸入內(nèi)容
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。