我正在创建一个非常简单的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
我正在创建一个非常简单的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
试一试
#!/bin/bash
directory="/media/student/System"
if [ ! -d "${directory}" ]
then
mkdir "${directory}"
fi
通过 mkdir 的 parent
参数甚至可以更短(mkdir 的手册页面)
#!/bin/bash
directory="/media/student/System"
mkdir -p "${directory}"
_
除外)开头定义变量。在你的代码中,你使用了$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"
if
测试之前停止了。你的分配有误。 - Aserre$1
?这是一个特殊变量:https://dev59.com/_14b5IYBdhLWcg3wXAV1 - yunzenmy_var="/media/student/System"; if[ ! -d $my_var] ....
- Aserre