Я написал программу, которая создает кучу каталогов на основе глубины и ширины. Существует 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
Простое исправление было бы просто поставить 'CD "$ 1" || exit' в качестве первой строки, так что остальная часть скрипта запускается в этом каталоге –
Там много чего не здесь, кстати. Рассмотрите возможность запуска этого кода через http://shellcheck.net/ –
Также здесь # #/bin/sh' shebang неверен, поскольку POSIX sh не поддерживает массивы. Вероятно, это должно быть '#!/Bin/bash', или (для вашего отсутствия правильности цитаты)' #!/Bin/zsh'. –