web-dev-qa-db-ja.com

改行付きの変数の出力を取得するにはどうすればよいですか?

将来の処理のために、topから変数へのonre出力を取得したいと思います。私は試した:

top=$(top -n1)
top=$(top -n1 -w80)
top=$(top -n1 -b -w80)
top=$(COLUMNS=100 top -b-n1)

実行するとecho $top次に、スクリーンショットのようなものが表示されます enter image description here つまり、改行なしで完全にtop出力されます。私は何が間違っているのですか?

1
Putnik

変数を二重引用符で囲みます

top="$(top -n1)"を割り当てた後、echo "${top}"を試してください

1
Andrew Siplas

複製できません:

$ t="$( top -b -n1 )"
$ echo "$t" | head -n3
top - 14:49:52 up 243 days, 17:18,  2 users,  load average: 0.03, 0.07, 0.12
Tasks: 205 total,   1 running, 203 sleeping,   1 stopped,   0 zombie
%Cpu(s):  2.4 us,  0.5 sy,  0.1 ni, 96.4 id,  0.7 wa,  0.0 hi,  0.0 si,  0.0 st
0
DopeGhoti