簡體   English   中英

沒有換行符的回聲會導致語法錯誤

[英]Echo without a newline character results a syntax error

我正在編寫一個shell腳本,我想擁有此代碼

echo $(awk '{print $1}' /proc/uptime) / 3600 | bc

末尾沒有換行符。 我想使用echo -n編寫它,但是這段代碼

echo -n $(awk '{print $1}' /proc/uptime) / 3600 | bc

導致語法錯誤:

(standard_in) 1: syntax error

你能幫我嗎? 非常感謝你!

echo $(awk '{print $1}' /proc/uptime) / 3600 | bc | tr -d "\\n"

備擇方案:

echo -n $(($(cut -d . -f 1 /proc/uptime)/3600))

mapfile A </proc/uptime; echo -n $((${A%%.*}/3600))

使用echo -n的解決方案:

echo -n $(echo $(awk '{print $1}' /proc/uptime) / 3600 | bc)

通常,如果foo產生一行輸出,即使foo很復雜,您也可以使用echo -n $(foo)打印相同的輸出而無需換行。

使用純awk更直接的解決方案(由於awk算術輸出格式化,因此同時使用awkbc沒什么意義):

awk '{printf("%d", $1 / 3600)}' /proc/uptime

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM