【问题标题】:How to loop commands continuously from prompt [duplicate]如何从提示符连续循环命令[重复]
【发布时间】:2019-08-20 22:15:08
【问题描述】:

有没有办法循环命令直到提示中的名称数量,我不希望它只是限制用户数量,而是在重复代码行时不断向提示中添加名称

read -p "Enter user/s: " user user1 user2 user3 
mkdir $user
mkdir $user1
mkdir $user2
mkdir $user3

喜欢,输入用户/s:Michael Raphael Gabriel Satel Helel...(连续到无限) 然后通过循环命令而不是复制和粘贴来从提示的名称列表中命名不同的目录

【问题讨论】:

  • 请注意,这两个副本应该一起阅读——结合起来,它们涵盖了问题的全部内容。

标签: bash loops ubuntu


【解决方案1】:

使用read -a arrayname 读入一个数组,使用"${arrayname[@]}" 将一个数组扩展为它包含的各个元素。

对于mkdir,您可以将多个目录名称传递给单个调用并让进行循环,根本不需要在shell中循环(我们使用xargs当用户名列表长于最大命令行长度时,此处拆分为多个 mkdir 调用):

read -r -a users
printf '%s\0' "${users[@]}" | xargs -0 mkdir --

...但是如果你想在shell中进行循环,那看起来像:

read -r -a users
for user in "${users[@]}"; do
  mkdir -- "$user"
done

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-01
    • 2022-01-07
    相关资源
    最近更新 更多