2016-09-27 73 views
-1

我編寫了一個程序,可以根據深度和廣度創建一堆目錄。有一個參數是我想要製作所有目錄的目錄。問題是它只會使目錄位於此腳本所在的目錄中。無論如何,我可以選擇腳本創建目錄的位置嗎?如何更改bash腳本中的目錄路徑

#!/bin/sh 
depth=2 
breadth=5 

open=($1) 
for((i=0; i<depth; i++)); do 
    temp_open=() 
    for x in "${open[@]}"; do 
     temp=() 
     for((j=0; j<breadth; j++)); do 
      mkdir -p $i/$j 
      temp=(${temp[@]} "$i/$j") 
     done 
     temp_open=(${temp[@]}) 
    done 
    open=(${temp_open[@]}) 
done 
+3

簡單的解決將是隻需把'CD 「$ 1」 ||退出'作爲第一行,以便腳本的其餘部分運行在該目錄中 –

+3

有很多不是這裏,順便說一句。考慮通過http://shellcheck.net/ –

+0

運行此代碼此外,這裏的#!/ bin/sh' shebang不正確,因爲POSIX sh不支持數組。它可能應該是'#!/ bin/bash',或者(因爲你沒有引用是正確的)'#!/ bin/zsh'。 –

回答

1

這個變量:

mydir="/directory/to/make/dirs" 

變化mkdir -p $i/$j這樣:

mkdir -p "$mydir/$i/$j" 
+0

謝謝!!!!!!先生 –