我正在创建一个脚本,它将计算有关目录的一些不同信息.我必须向用户提供创建文件的选项.完成了许多不同的文件检查,但特别是给我一个悲伤:
如果文件名被选中但不存在,则脚本将尝试创建它.如果创建失败,将通知用户无法创建.
所以我有一个变量(文件),这是用户给他希望创建的文件的名称.然后我用:
echo -n "Creating the file: '$file'"
touch "$file"
if [ -e "$file" ]; then
echo "..........File created"
else echo"...........Creation failed"
fi
> 2 / dev / null是否在触摸线之后?什么是正确的语法来抑制错误消息,只显示创建文件:(文件)………创建失败?
非常感谢
最佳答案
你需要使用2>而不是> 2来重定向标准错误.
touch "$file" 2> /dev/null
但即使有了这个改变,你的脚本也有一个错误:
假设触摸失败,因为文件存在但您没有权限触摸它.接下来,使用-e check检查文件是否存在,并返回true,然后打印File created,这是不正确的.
要解决此问题,您需要检查touch命令的返回值:
if touch "$file" 2> /dev/null ; then
echo "..........File created"
else
echo "..........File failed"
相关文章