0

ディレクトリの作成プロセスを自動化するUNIXスクリプトを実行しようとしています。私のマシンでbashシェルを実行しています

これらは私が従ったステップです

1)私のMacにディレクトリを作成しました:〜/ unix_scripts

2)ファイルを作成しました:〜/ unix_scripts / create_dirs.sh

 #! /usr/bin/env bash
 for ((i = 9; i<= 13; i++ ))
 do
mkdir ./courses/CPSC340/Notes/$i
echo created directory with name $i
 done

3)次のコマンドを使用して、このファイルのファイル権限を変更しました:chmod + x create_dirs.sh

4)次のコマンドを使用してこのファイルを実行しようとしました:〜/ unix_scripts> create_dirs.sh

このエラーが発生しました:-bash:./unix_scripts/create_dirs:そのようなファイルまたはディレクトリはありません

これについて次の質問があります。

1)私は何を間違っていますか?どうすればこれを機能させることができますか?

2)動作したら、スクリプトを次のように変更するにはどうすればよいですか?

- I can pass the beginning index and end index as arguments to the script

- I would like to also pass a prefix as a command line argument so that the directories are named ""prefix_ + (value of i)"

助けてくれて本当にありがとうございます

4

2 に答える 2

1

スクリプトを変更します。

#!/usr/bin/env bash
PREFIX=$1
BEGIN=$2
END=$3
for ((i=BEGIN; i<=END; i++))
do
   DIRNAME=${PREFIX}${i}
   mkdir -p $DIRNAME
   echo created directory with name $DIRNAME
done

正しく呼び出す:

~/unix_scripts/create_dirs.sh "./courses/CPSC340/Notes/" 9 13

以下にコメントされているように、再度上書きしないように注意し、時間をかけて読んでください:http: //tldp.org/LDP/Bash-Beginners-Guide/html/

于 2012-08-20T18:13:51.553 に答える
0

リダイレクションを使用すると、スクリプトが上書きされます。代わりに、スクリプトを実行するには、次のようにします。

~/unix_scripts/create_dirs.sh

そして、スクリプトで、mkdirの-pフラグを使用してパス全体を作成します。

mkdir -p ./courses/CPSC340/Notes/$i
于 2012-08-20T18:09:53.160 に答える