2015-08-22 78 views
0

我有以下腳本:在bash腳本的mkdir多個子文件夾

#!/bin/bash 
path="/parentfolder/{child_1,child_2}" 
mkdir -p $path 
mkdir -p /parentfolder/{child_3,child_4} 

運行它會創建下列文件夾:

/parentfolder/{child_1,child_2} 
/parentfolder/child_3 
/parentfolder/child_4 

我怎樣才能使腳本創建以下文件夾結構:

/parentfolder/child_1 
/parentfolder/child_2 
/parentfolder/child_3 
/parentfolder/child_4 
+1

本手冊介紹[shell擴展](http://www.gnu.org/software/bash/manual/bash.html#Shell-Expansions)是如何工作的。 Brace擴展發生在參數(變量)擴展之前,因此參數值中的大括號不會擴展。 –

回答

2

您不能在帶引號的變量中使用大括號擴展;要麼將大括號放在命令本身中,要麼以不同的方式分配變量。如果你需要這些值在一個變量中,那麼使用一個數組似乎是合適的。

#!/bin/bash 

paths=(/parentfolder/{child_1,child_2,child_3,child_4}) 
mkdir -p "${paths[@]}" 
0
path=`echo /parentfolder/{child_1,child_2}` 

擴展需要com要求正常工作。

相關問題