我有这个:
cd $dir
if[ $? -eq 0 ]; then ...
else echo "The directory doesn't exist"; exit -1;
fi
我想要的是如果cd返回错误(在第1行),shell将不会显示错误。我只希望看到我写的信息。 我试着这样做:
ret=$(cd $dir)
但这不起作用。我该怎么办?
答案 0 :(得分:4)
重定向标准错误:
cd $dir 2>/dev/null
答案 1 :(得分:4)
if cd $dir 2> /dev/null; then ...; else echo "The directory doesn't exist"; exit -1; fi
答案 2 :(得分:1)
cd $dir 2>/dev/null || { echo "The directory doesn't exist"; exit -1; }
...
答案 3 :(得分:1)
如果目录确实存在,但脚本没有输入权限,那么您尝试执行的操作会使用户感到困惑。如果您的意图是混淆用户,请继续使用提供的其他答案。但你真正想做的是让cd发出错误信息,然后写:
cd $dir || exit 255
当您完全不知道发生了什么错误时,尝试打印错误消息会导致混淆。