コマンドの出力を変数に割り当てるにはどうすればよいですか?


19

値を変数に割り当てる方法はありますか。その値は、コマンドを記述することでターミナルで取得できますか?

コマンド例: sensors

それからCPU温度を取得します。この値をtemp_cpu変数に割り当てるにはどうすればよいですか?


1
この質問は、スーパーユーザーまたはUnixとLinuxにより適しています。試してくださいtemp_cpu=$(sensors)(ただし、これにより改行がスペースに変わります)。grep必要な特定の情報をフィルタリングするためにも使用できます。
エドウィン

1
@edwinなぜ質問はこの場所にあまり適していないのですか?
シェパン

@Tshepang、この質問はUbuntuに固有のものではなく、Unixのようなシェルに関するものです。したがって、UnixとLinuxです。
エドウィン

1
ポリシー/一般的な意見は変わりましたか?このサイトは、必ずしもUbuntuに固有のものではない質問を歓迎すると思った。
シェパン

回答:


27

はい、使用しますmy_var=$(some_command)。例えば:

$ foo=$(date)
$ echo $foo
Mon Jul 22 18:10:24 CLT 2013

またはあなたの特定の例については、使用sedしてgrep希望する特定のデータを取得します:

$ cpu_temp=$(sensors acpitz-virtual-0 | grep '^temp1:' | sed 's/^temp1: *//;s/ .*//')
$ echo $cpu_temp
+39.0°C
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.