我需要检查新目录的创建和更改目录,并且打印错误导致某人失败,如下所示:
[ mkdir tmp && cd tmp ] || echo "error"
但我收到以下错误:
[: missing `]'
答案 0 :(得分:1)
&&
命令的括号内不允许使用 test
,因此]
认为bash
之间的tmp
{ &&
。
正确的命令形式是
mkdir tmp && cd temp || echo "error"
如果mkdir
失败,(或cd
在mkdir
成功后失败),则执行echo
。不需要test
/ [
命令。
答案 1 :(得分:0)
[ -d tmp ] || mkdir tmp
可能就是你要找的东西。这将检查目录是否存在,然后在目录不存在时创建它。
[ -d tmp ] || mkdir tmp || echo "failure"
如果mkdir失败,会显示一条消息。
答案 2 :(得分:0)
或者更详细但更清晰的版本:
if [ ! -d temp ] # if there is no directory
then
mkdir temp
fi