0

我试图运行一个 UNIX 脚本,它将自动创建目录的过程。我在我的机器上运行 bash shell

这些是我遵循的步骤

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: No such file or directory

我对此有以下疑问:

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

change your script:

#!/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

and call it correctly:

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

please take care to not overwrite it again as commented below and take time to read: http://tldp.org/LDP/Bash-Beginners-Guide/html/

于 2012-08-20T18:13:51.553 回答
0

您使用重定向,它会覆盖您的脚本。相反,要运行您的脚本,请执行以下操作:

~/unix_scripts/create_dirs.sh

-p并且,在脚本中,使用 mkdir 的标志创建整个路径:

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