私は初めてバッシュに触れました。次のコマンドを実行するとき:
grep "type" /root/myFile | cut-d'=' -f2
次のメッセージが表示されます。
102
304
503
442
変数の内容が次のように宣言するのと同じように、最初のコマンドの内容を変数に保存したいと思います。
myVariable="102 304 503 442"
私は何をすべきかわかりません。myVariable
空の文字列で初期化し、コマンドラインの内容を1行ずつ繰り返してからスペースを入れてmyVariableに追加しますか、それともbashを使用してこれを行うより簡単な方法はありますか?
ベストアンサー1
bash
コマンド置換とパラメータ拡張を使用してこれを直接実行できます。
まず、コマンド置換を使用してコマンドの出力を変数に入れてから、パラメータ$()
拡張を使用してすべての改行を空白に置き換えます${variable//$'\n'/ }
。
$ myVariable=$(grep "type" /root/myFile | cut-d'=' -f2)
$ myVariable=${myVariable//$'\n'/ }
$ echo $myVariable
102 304 503 442
しかし、再利用性と清潔さのために配列を使用する方が良いです。
myArray=( $(grep "type" /root/myFile | cut-d'=' -f2) )
一般的な方法で配列要素を繰り返します。