如何在 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"
不是相同的字符串,所以这总是失败。
我是编码新手,正在尝试自学。我想知道为什么我一直在获取 "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"
不是相同的字符串,所以这总是失败。