【问题标题】:Create Directories from an array in a for loop在 for 循环中从数组创建目录
【发布时间】:2013-04-10 18:41:21
【问题描述】:

我有一组客户姓名,我想用它们来创建一个目录。下面是我正在运行的代码:

$ echo "$customerArray=( customer1 customer2 customer3 customer4 customer5 )"

for customerName in $( customerArray ); 
do
    mkdir -p /home/$customerName
    mkdir -p /home/$customerName/outbound
    mkdir -p /home/$customerName/outbound_backup
    mkdir -p /home/$customerName/dropoff
done

谁能向我解释我做错了什么?

【问题讨论】:

    标签: linux arrays bash scripting redhat


    【解决方案1】:

    您不能在字符串文字内设置变量,我很确定$( customerArray ) 也是无效的。请尝试以下方法:

    customerArray=(customer1 customer2 customer3 customer4 customer5)
    for customerName in ${customerArray[@]}
    do
        ...
    done
    

    您需要将数组变量引用为${customerArray[@]}${customerArray[*]}bash manual 对此进行了更深入的描述。

    【讨论】:

      【解决方案2】:

      这将是一个可行的替代方案 brace expansion

      customerArray=(customer1 customer2 customer3 customer4 customer5)
      for customerName in ${customerArray[*]}
      do
        mkdir -p /home/$customerName/{outbound,outbound_backup,dropoff}
      done
      

      【讨论】:

      • 嘿史蒂文感谢您的回复。实际上,我更想测试我上面指定的 for 循环是否正确读取了数组中的信息。
      猜你喜欢
      • 1970-01-01
      • 2012-09-11
      • 2021-09-11
      • 2017-10-16
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 2019-08-28
      相关资源
      最近更新 更多