linux shell print命令
在Linux下,經(jīng)常會(huì)需要用到格式化輸出的情況,那么應(yīng)該使用那個(gè)命令呢?下面由學(xué)習(xí)啦小編為大家整理了linux shell print命令,希望對(duì)大家有幫助!
linux shell print命令
printf 命令用于格式化輸出, 是echo命令的增強(qiáng)版。它是C語(yǔ)言printf()庫(kù)函數(shù)的一個(gè)有限的變形,并且在語(yǔ)法上有些不同。
注意:printf 由 POSIX 標(biāo)準(zhǔn)所定義,移植性要比 echo 好。
如同 echo 命令,printf 命令也可以輸出簡(jiǎn)單的字符串:
$printf "Hello, Shell\n"
Hello, Shell
$
printf 不像 echo 那樣會(huì)自動(dòng)換行,必須顯式添加換行符(\n)。
printf 命令的語(yǔ)法:
printf format-string [arguments…]
format-string 為格式控制字符串,arguments 為參數(shù)列表。
printf()在c語(yǔ)言入門教程中已經(jīng)講到,功能和用法與 printf 命令類似,請(qǐng)查看:C語(yǔ)言格式輸出函數(shù)printf()詳解
這里僅說(shuō)明與C語(yǔ)言printf()函數(shù)的不同:
printf 命令不用加括號(hào)
format-string 可以沒(méi)有引號(hào),但最好加上,單引號(hào)雙引號(hào)均可。
參數(shù)多于格式控制符(%)時(shí),format-string 可以重用,可以將所有參數(shù)都轉(zhuǎn)換。
arguments 使用空格分隔,不用逗號(hào)。
# format-string為雙引號(hào)
$ printf "%d %s\n" 1 "abc"
1 abc
# 單引號(hào)與雙引號(hào)效果一樣
$ printf '%d %s\n' 1 "abc"
1 abc
# 沒(méi)有引號(hào)也可以輸出
$ printf %s abcdef
abcdef
# 格式只指定了一個(gè)參數(shù),但多出的參數(shù)仍然會(huì)按照該格式輸出,format-string 被重用
$ printf %s abc def
abcdef
$ printf "%s\n" abc def
abc
def
$ printf "%s %s %s\n" a b c d e f g h i j
a b c
d e f
g h i
j
# 如果沒(méi)有 arguments,那么 %s 用NULL代替,%d 用 0 代替
$ printf "%s and %d \n"
and 0
# 如果以 %d 的格式來(lái)顯示字符串,那么會(huì)有警告,提示無(wú)效的數(shù)字,此時(shí)默認(rèn)置為 0
$ printf "The first program always prints'%s,%d\n'" Hello Shell
-bash: printf: Shell: invalid number
The first program always prints 'Hello,0'
34567891011121314151617181920212223242526272812345678910111213141516171819202122232425262728
補(bǔ)充:linux shell echo命令
echo是Shell的一個(gè)內(nèi)部指令,用于在屏幕上打印出指定的字符串。命令格式:
echo arg
您可以使用echo實(shí)現(xiàn)更復(fù)雜的輸出格式控制。
----------
顯示轉(zhuǎn)義字符
"echo "\"It is a test\""
結(jié)果將是:
"It is a test"
雙引號(hào)也可以省略。
----------
顯示變量
name="OK"
echo "$name It is a test"
結(jié)果將是:
OK It is a test
同樣雙引號(hào)也可以省略。
如果變量與其它字符相連的話,需要使用大括號(hào)({ }):
mouth=8
echo "${mouth}-1-2009"
結(jié)果將是:
8-1-2009
----------
顯示換行
echo "OK!\n"
echo "It is a test"
輸出:
OK!
It is a test
----------
顯示不換行
echo "OK!\c"
echo "It is a test"
輸出:
OK!It si a test
----------
顯示結(jié)果重定向至文件
echo "It is a test" > myfile
原樣輸出字符串
若需要原樣輸出字符串(不進(jìn)行轉(zhuǎn)義),請(qǐng)使用單引號(hào)。例如:
echo '$name\"'顯示命令執(zhí)行結(jié)果
echo `date`結(jié)果將顯示當(dāng)前日期
linux shell print命令
上一篇:linux shell解壓命令
下一篇:linux shell命令分類