centos中echo和printf命令
centos中echo和printf命令
1.echo
後面的內容直接當做列印資訊輸出到終端
1.1 echo 輸出資訊不帶冒號
[[email protected] ~]$ echo 輸出資訊不帶冒號
輸出資訊不帶冒號
1.2 echo “輸出的資訊帶冒號”
[[email protected] ~]$ echo “輸出的資訊帶冒號”
輸出的資訊帶冒號
1.3 echo $(pwd)
[[email protected] ~] echo $(pwd)
/home/yl
[[email protected] ~] echo $(date +%Y-%m-%d” “%a” “%X )
2018-04-15 Sun 06:34:29 PM
網上有的說可以直接在雙引號裡面加單引號也可以,但是親測centos的不可以
[[email protected] ~]$ echo “‘pwd’”
‘pwd’
[[email protected] ~]$ echo ‘pwd’
pwd
2.printf
這個函式和C函式裡面的函式的用法差不多,不過作為命令輸出的時候可以更簡單
2.1 printf 直接列印字串不換行
[[email protected] ~]$ printf 直接列印字串不換行
直接列印字串不換行[[email protected] ~]$
2.2printf 直接列印字串換行\n
[[email protected] ~]$ printf 直接列印字串換行\n
直接列印字串換行
這裡在命令列裡要實現換行的話為兩個斜槓。可能是文字編輯器的原因,這裡現實的就是一個\n
2.3 類似於C語言中printf的用法
printf 直接列印字串換行,格式控制%d%s,\n 5 hello
[[email protected] ~]$ printf 直接列印字串換行,格式控制%d%s,\n 5 hello
直接列印字串換行,格式控制5hello,
2.4 可以和C語言中printf用法很像,可以加冒號,但是不能加括號
-bash: syntax error near unexpected token `$’”\347\233\264\346\216\245\346\211\223\345\215\260\345\255\227\347\254\246\344\270\262\346\215\242\350\241\214\n””
[[email protected] ~]$ printf “直接列印字串換行\n”
直接列印字串換行
[[email protected] ~]$ printf “直接列印字串換行,%d,%s\n” 5 hello
直接列印字串換行,5,hello
參考其他資料:
原文地址:https://blog.csdn.net/Watson2016/article/details/52367945
1、echo指令
echo是Shell的一個內部指令,用於在螢幕上打印出指定的字串。命令格式:
echo arg
您可以使用echo實現更復雜的輸出格式控制。
顯示轉義字元
echo “\”It is a test\””
結果將是:
“It is a test”
雙引號也可以省略。
顯示變數
name=”OK”
echo “$name It is a test”
結果將是:
OK It is a test
同樣雙引號也可以省略。
如果變數與其它字元相連的話,需要使用大括號({ }):
mouth=8
echo “${mouth}-1-2009”
結果將是:
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
顯示結果重定向至檔案
echo “It is a test” > myfile
原樣輸出字串
若需要原樣輸出字串(不進行轉義),請使用單引號。例如:
echo ‘$name\”’
顯示命令執行結果
echo date
結果將顯示當前日期
2、printf
printf 命令用於格式化輸出, 是echo命令的增強版。它是C語言printf()庫函式的一個有限的變形,並且在語法上有些不同。
注意:printf 由 POSIX 標準所定義,移植性要比 echo 好。
如同 echo 命令,printf 命令也可以輸出簡單的字串:
printf 不像 echo 那樣會自動換行,必須顯式新增換行符(\n)。
printf 命令的語法:
printf format-string [arguments…]
format-string 為格式控制字串,arguments 為引數列表。
printf()在C語言入門教程中已經講到,功能和用法與 printf 命令類似,請檢視:C語言格式輸出函式printf()詳解
這裡僅說明與C語言printf()函式的不同:
printf 命令不用加括號
format-string 可以沒有引號,但最好加上,單引號雙引號均可。
引數多於格式控制符(%)時,format-string 可以重用,可以將所有引數都轉換。
arguments 使用空格分隔,不用逗號。
請看下面的例子:
format-string為雙引號
$ printf “%d %s\n” 1 “abc”
1 abc
單引號與雙引號效果一樣
$ printf ‘%d %s\n’ 1 “abc”
1 abc
沒有引號也可以輸出
$ printf %s abcdef
abcdef
格式只指定了一個引數,但多出的引數仍然會按照該格式輸出,format-string 被重用
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
如果沒有 arguments,那麼 %s 用NULL代替,%d 用 0 代替
$ printf “%s and %d \n”
and 0
如果以 %d 的格式來顯示字串,那麼會有警告,提示無效的數字,此時預設置為 0
注意,根據POSIX標準,浮點格式%e、%E、%f、%g與%G是“不需要被支援”。這是因為awk支援浮點預算,且有它自己的printf語句。這樣Shell程式中需要將浮點數值進行格式化的列印時,可使用小型的awk程式實現。然而,內建於bash、ksh93和zsh中的printf命令都支援浮點格式。