現在ログインしているユーザー(端末ごとにログインしている各ユーザー)を印刷しようとしています。これが私が現在持っているものです:
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
答え1
変える
echo $USERS
そして:
echo "$USERS"
inなどの引用符で囲まれていない変数の場合、echo $USERS
シェルは次を実行します。噴射。これは、すべての空白文字(改行文字など)がIFSの最初の文字(デフォルト:空白)で置き換えられることを意味します。改行を維持するには、二重引用符を使用してください。