2016-09-27 13 views
-1

深度と幅に基づいて一連のディレクトリを作成するプログラムを作成しました。すべてのディレクトリを作成するディレクトリは1つのパラメータです。問題は、このスクリプトが存在するディレクトリ内のディレクトリのみを作成することです。とにかくスクリプトがディレクトリを作成する場所を選択できますか?これにbashスクリプトのディレクトリパスを変更するには

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

変更mkdir -p $i/$j

#!/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" を置くことであろう|| exit 'を最初の行として入力して、スクリプトの残りの部分がそのディレクトリで実行されるようにします。 –

+3

ここにはたくさんあるが、btw。 http://shellcheck.net/ –

+0

でこのコードを実行することを検討してください。POSIX shは配列をサポートしていないので、ここの '#!/ bin/sh'シバンは間違っています。おそらく、 '#!/ bin/bash'、(あなたの引用が不足しているため)'#!/ bin/zsh'でなければなりません。 –

答えて

1

この変数を定義

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

ありがとう!!!!!!サー –

関連する問題