コマンド置換で複数の完全なコマンドを生成できますか?

コマンド置換で複数の完全なコマンドを生成できますか?

touchlsおよびなど、複数の引数を受け入れるコマンドがたくさんありますrm。これにより、その構成を使用して{1..3}コマンドの複数のパラメーターを生成できます。たとえば、

[root@192 ~]# touch file{1..3}
[root@192 ~]# ls file{1..3}
file1  file2  file3
[root@192 ~]# rm -f file{1..3}
[root@192 ~]#

一部のコマンドは複数のパラメータをサポートしていませんgroupadd。たとえば、次のコマンドはエラーを生成します。

[root@192 ~]# groupadd g{1..3}
Usage: groupadd [options] GROUP
...
[root@192 ~]# 

たとえば、複数の完全なコマンドを生成できますかgroupadd g1; groupadd g2; groupadd g3;?次のコマンドを試しましたが失敗しました。

[root@192 ~]# `"groupadd g"{1..3}`
bash: groupadd g1: command not found...
[root@192 ~]#

しかし、私は初めてBashに触れましたが、この例はデモ用にのみ使用されました。私は複数のグループを作成しようとしていません。

ベストアンサー1

これを行う方法はいくつかあります。最も簡単で確実な方法の1つは、forループを使用することです。たとえば、

for g in {1..3}; do groupadd "g$g" ...other groupadd args here... ; done

注:touchlsおよびrm例(複数の引数、つまり拡張子を使用してコマンドを1回実行するfile{1..3})とは異なり、これは毎回1つの引数を使用してgroupadd3回実行されます。"g$g"

おすすめ記事