有没有一种方法可以循环命令,直到提示中的名称数量为止,我不希望它只是限制用户数量,而是在重复代码行的同时连续向提示中添加名称
read -p "Enter user/s: " user user1 user2 user3
mkdir $user
mkdir $user1
mkdir $user2
mkdir $user3
例如,输入用户:Michael Raphael Gabriel Satanel Helel ...(连续到无限) 然后通过循环命令而不是复制和粘贴从提示的名称列表中命名其他目录
答案 0 :(得分:0)
使用read -a arrayname
读入数组,然后使用"${arrayname[@]}"
将数组扩展到包含的单个元素。
对于mkdir
,具体来说,您可以将多个目录名传递给单个调用,然后让 it 进行循环,而根本不需要在shell中循环(我们使用{ {1}}可以在用户名列表长于最大命令行长度时分成多个xargs
调用):
mkdir
...但是如果您 do 想要在shell中进行循环,则看起来像是:
read -r -a users
printf '%s\0' "${users[@]}" | xargs -0 mkdir --