Bash でコマンドの出力に変数を設定するにはどうすればいいですか? 質問する

Bash でコマンドの出力に変数を設定するにはどうすればいいですか? 質問する

次のような非常にシンプルなスクリプトがあります。

#!/bin/bash

VAR1="$1"
MOREF='sudo run command against $VAR1 | grep name | cut -c7-'

echo $MOREF

このスクリプトをコマンド ラインから実行し、引数を渡しても、出力は得られません。ただし、$MOREF変数内に含まれるコマンドを実行すると、出力が得られます。

スクリプト内で実行する必要があるコマンドの結果を取得し、それを変数に保存し、その変数を画面に出力するにはどうすればよいですか?

ベストアンサー1

バックティックに加えて`command`コマンド置換$(command)または を使用すると"$(command)"、読みやすくなり、ネストも可能になります。

OUTPUT=$(ls -1)
echo "${OUTPUT}"

MULTILINE=$(ls \
   -1)
echo "${MULTILINE}"

複数行の変数値を保存するには、引用符 ( ") が重​​要です。代入の右側ではオプションです。単語分割は行われないなのでOUTPUT=$(ls -1)問題なく動作するでしょう。

おすすめ記事