当前位置: 首页 > 知识库问答 >
问题:

使用[!-d"$DIR"]时,在Bash的IF-ELSE条件中找不到命令

郎和志
2023-03-14

我有一个这样的代码

#!/bin/bash 
DIR="test_dir/";
if [! -d "$DIR"]; then
    # If it doesn't create it
    mkdir $DIR
fi

但是为什么执行它给了我这个:

./mycode.sh: line 16: [!: command not found

正确的做法是什么?

共有3个答案

宋稳
2023-03-14

你也可以试着简单地说:

test -d "${dir}" || mkdir "${dir}"

如果目录不存在,这将创建该目录。

公良俊楚
2023-03-14

添加一些空间:

if [ ! -d "$DIR" ]; then
#   ^           ^
有品
2023-03-14

在[和!.和之前]之间添加空格。

#!/bin/bash 
DIR="test_dir/";
if [ ! -d "$DIR" ]; then
    # If it doesn't create it
    mkdir $DIR
fi

引用您的变量也是一个好主意:

    mkdir "$DIR"
 类似资料:
  • 我目前正在了解React Native中的if-else if-else语句的语法。下面是我理解的一个简单的if-else条件: 但是,当添加另一个条件来生成if-else if-else语句时,我遇到了问题。 如果有人能指出我的缺点,我将不胜感激!

  • Go语言的条件判断结构也很简单。 package main import "fmt" func main() { // 基本的例子 if 7%2 == 0 { fmt.Println("7 is even") } else { fmt.Println("7 is odd") } // 只有if条件的情况 if 8%4

  • 问题内容: 我想在CSS中使用条件。 我的想法是,当站点运行以生成正确的样式表时,我将替换一个变量。 我想要它,以便根据此变量更改样式表! 看起来像: 能做到吗?你怎么做到这一点? 问题答案: 不是传统意义上的,但如果可以访问HTML,则可以为此使用类。考虑一下: 并在您的CSS文件中: 这就是 CSS的 方法。 然后是CSS预处理程序,如Sass。您可以在此处使用条件语句,如下所示: 缺点是,您

  • 问题内容: 我在修复此bash脚本中的错误时遇到问题,我真的不知道我做错了什么,感谢您的任何帮助,谢谢 问题答案: 在 之前和 之后 添加一个空格。

  • 问题内容: 在安装了32位python 2.7的64位系统中,我尝试执行以下操作: 但这给了我: 如果我在航站楼里做… …它当然会打印当前的文件夹内容。 我试图将shell参数更改为shell = False。 编辑:实际上,我不能使用调用路径上的任何可执行文件。该语句在另一台机器上运行良好,我认为这是相关的。 如果我做 然后我得到 如果我做: 然后我得到 以上所有操作均在以管理员模式启动的终端中

  • 我有一个简单的角度/html代码,其中有一个表,每个