Linux

awk 不換行

  • November 23, 2015

我正在嘗試列印出目前登錄的使用者(每個終端的每個登錄使用者)。這是我目前擁有的:

NOWDATE=$(date +"%Y-%m-%d")
NOWTIME=$(date +"%T")
USERS=$(who | awk -v nd="$NOWDATE"_"$NOWTIME" '{printf nd "\n" " User: "$1" Terminal: "$2" Login: "$3" "$4 "\n"}')

不幸的是,\n不起作用,這意味著我無法在變數$4. 輸出不做任何新行。我怎樣才能實現printf在變數後換行$4

注意:我只是執行 echo 來列出使用者,所以echo $USERS

代替

echo $USERS

和:

echo "$USERS"

對於不帶引號的變數,例如 in echo $USERS,shell 執行分詞。這意味著所有空白字元,例如換行符,都被 IFS 中的第一個字元替換(預設情況下:空格)。如果要保留換行符,請使用雙引號。

引用自:https://unix.stackexchange.com/questions/244997