如何在if语句中使用mkdir

时间:2016-06-14 16:12:34

标签: macos shell scripting mkdir

我是编码和尝试自学的新手。我想知道为什么我一直得到" notcoolbeans"而不是创建目录?

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

该目录尚不存在。我想成功。

1 个答案:

答案 0 :(得分:1)

正确的实现如下:

#!/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"不是相同的字符串,因此总是失败。