最近、中かっこを使って複数のコマンドを実行する方法を学びました。たとえば、10
次のようなファイルを作成できます。
touch {1..10}.txt
または奇妙な名前のファイル、
touch {1..10..2}
次のような複数のプロセスを再起動することもできます。
systemctl restart app9-{server,client,test}
上記のコマンドは名前付きサービスを再起動app9-server
し、app9-client
app9-test
これでスペースを含むコマンドが作成されました。
vagrant destroy app9
vagrant up app9
vagrant ssh app9
中かっこを使用して上記の3つのコマンドをどのように実行できますか?
頑張りました。
vagrant {destroy app9,up app9,ssh app9}
そして
vagrant {destroy,up,ssh} app9
しかし、それらのどれも実際には効果がありませんでした。
誰かが中かっこを使ってこれらのコマンドを実行する方法を教えてもらえますか?
答え1
どちらの場合も、複数のコマンドを実行するために質問に中括弧を使用しません。
touch {1..10}.txt
10個のファイルに対してコマンドを実行します。
touch 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt 10.txt
注文する
systemctl restart app9-{server,client,test}
それでもコマンドは次のようになります。
systemctl restart app9-server app9-client app9-test
中括弧拡張は、単一のコマンドで1つ以上の文字列に対して単純なテキスト拡張を実行するために使用されます。
実行する3つのタスクは3つの個別のコマンドでなければなりません。必要に応じてループでこれを行うことができます。
for cmd in destroy up ssh; do
vagrant "$cmd" app9
done
答え2
努力する:
eval 'vagrant '{destroy,up,ssh}' app9;'
引用符を参照してください。