如何在 if 语句中 mkdir

How to mkdir in if statement

我是编码新手,正在尝试自学。我想知道为什么我一直在获取 "notcoolbeans" 而不是创建目录?

!/bin/sh
if [ $mkdir /Users/Matt/Desktop/Yaya = 1 ];
then
     echo "theres beans"
else
     echo "notcoolbeans"
fi

目录不存在。我正在努力做到。

正确的实现应该是这样的:

#!/bin/sh
if mkdir /Users/Matt/Desktop/Yaya; then
  echo "theres beans"
else
  echo "notcoolbeans"
fi

注意事项:

  • 有效的 shebang 以 #! 开头,而不是 !。 (顺便说一句,如果您想要功能更全的脚本语言,请考虑 #!/bin/bash#!/bin/ksh 而不是 #!/bin/sh
  • [ ] 不是 if 语句 的一部分。这是一个运行测试并在输出上设置退出状态的命令,但如果您想测试不同命令的退出状态,则无法调用它。
  • $mkdir 正在尝试扩展名为 mkdir 的变量。没有这样的变量可以合理地预期存在于新的 shell 中;如果为空,则结果为 [ /Users/Matt/Desktop/Yaya = 1 ]"/Users/Matt/Desktop/Yaya""1" 不是相同的字符串,所以这总是失败。