我需要检查新目录的创建和更改目录,并打印错误离子使他们失败,如下所示:
[ mkdir tmp && cd tmp ] || echo "error"
但我收到以下错误:
[: missing `]'
&&
不允许在test
命令的括号内,因此缺少]
的是bash
认为应该在tmp
and之间的那个&&
。
您的命令的正确形式是
mkdir tmp && cd temp || echo "error"
如果mkdir
失败,(或成功cd
后失败mkdir
),则执行echo
. 不需要test
/[
命令。
[ -d tmp ] || mkdir tmp
可能是您正在寻找的。这将检查目录是否存在,如果不存在则创建它。
[ -d tmp ] || mkdir tmp || echo "failure"
如果 mkdir 失败,则显示一条消息。
或更详细但更清晰的版本:
if [ ! -d temp ] # if there is no directory
then
mkdir temp
fi