如何将cp命令的成功或失败输出到文件?

14
我将运行一个包含CP命令的shell脚本,使用定时的cron任务。我想在脚本中添加一些内容,以便输出到日志文件中,告知复制是否成功或失败。预先感谢任何建议。谢谢。
1个回答

33
你可以检查 cp 的返回代码。根据 cp 的 man 手册:
EXIT STATUS
    The cp utility exits 0 on success, and >0 if an error occurs.

上一个操作的退出码被存储在特殊变量$?中,所以你可以像这样做:
cp .. ..
echo $? >> outputfile

很可能你希望拥有一些“自定义”的错误信息。为了实现这个目的,你可以检查$?变量的值。

cp .. ..
if [ $? -ne 0 ]
then
    echo "there was an error" >> outputfile
fi

希望这能让你有个开始。


当我尝试这个时,输出的结果是..-bash: 0: 命令未找到。 - user2841861
可以了,谢谢。如果我想要一个定制的消息,而不是0写入日志文件,我需要做什么?提前致谢。 - user2841861
好的,与其只是将退出代码打印到文件中,不如先使用if语句进行检查。 - SBI
抱歉,我对此还很陌生。这是否类似于 if [$? -eq 0]; echo 'copied success' >> my_file.txt 的语法?但是我从中得到了一个语法错误:意外的文件结尾。 - user2841861
我似乎无法使其工作。 rm -rf ../feeds/SetupID_162/TODAY/TODAY/* if [ $? -ne 0 ] then echo "copied success" >> my_file fi 我得到了错误信息:Macquarie.sh: 第5行:语法错误,意外的标记 'fi'。 Macquarie.sh: 第5行:'fi'。 - user2841861
将您的整个文件发布在Pastebin或类似网站上。 (因为声望太低而无法进行聊天,所以这次滥用了评论)。 - SBI

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接