我正在创建一个非常简单的bash脚本,它将检查目录是否存在,如果不存在,则创建一个。
但是,无论我放入哪个目录都找不到它!
请告诉我我做错了什么。
这是我的剧本。
#!/bin/bash
$1="/media/student/System"
if [ ! -d $1 ]
then
mkdir $1
fi
这是命令行错误:
./test1.sh: line 2: =/media/student/System: No such file or directory
答案 0 :(得分:7)
试试这个
#!/bin/bash
directory="/media/student/System"
if [ ! -d "${directory}" ]
then
mkdir "${directory}"
fi
使用mkdir(manpage of mkdir)的parent
参数或更短
#!/bin/bash
directory="/media/student/System"
mkdir -p "${directory}"
答案 1 :(得分:2)
在bash中,除了下划线_
之外,您不允许使用数字或符号来启动变量。在您使用$1
的代码中,您在那里尝试将"/media/student/System"
分配给$1
,我想您可能误解了bash中的参数是如何工作的。我想这就是你想要的
#!/bin/bash
directory="$1" # you have to quote to avoid white space splitting
if [[ ! -d "${directory}" ]];then
mkdir "$directory"
fi
像这样运行脚本
$ chmod +x create_dir.sh
$ ./create_dir.sh "/media/student/System"
这段代码的作用是检查“/ media / student / System”是否是目录,如果它不是创建目录的目录