2013-04-17 55 views
1

我有一個我想用來創建目錄的客戶名稱數組。下面是我正在運行的代碼:從for循環中的數組創建目錄

$ 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 

任何人都可以向我解釋我做錯了什麼?

回答

2

這將是使用 brace expansion

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

嘿史蒂文感謝您的迴應。實際上,我更想測試上面指定的for循環是否正確讀取數組中的信息。 – user2019182

4

你不能設置一個變量字符串文字裏面,我敢肯定,$(customerArray)是無效的,以及工作方案。嘗試代替以下:

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

需要引用數組變量如任一${customerArray[@]}${customerArray[*]}bash manual更深入地描述了這一點。