Bash脚本 - 文件目录不存在

时间:2017-03-21 15:39:16

标签: bash

我正在创建一个非常简单的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

2 个答案:

答案 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”是否是目录,如果它不是创建目录的目录