有许多命令可以接受多个参数,touch
例如ls
和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 新用户,该示例仅用于演示目的。我不是想创建一堆组。
有几种方法可以做到这一点。最简单和最明显的一种是使用
for
循环。例如:注意:与您的
touch
,ls
和rm
示例(使用多个参数运行命令一次,扩展file{1..3}
)不同,它运行3groupadd
次,"g$g"
每次使用一个参数。我找到了一种比
for
循环短的方法。