
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)容
標(biāo)題名稱:Shell學(xué)習(xí)【printf與echo】-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://www.chinadenli.net/article2/dochoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、營銷型網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、品牌網(wǎng)站制作、商城網(wǎng)站、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容