在我的脚本中,我有以下3个命令
基本上它要做的是:
-
find . -type f -name "*${regex}-*" -exec ln -s {} "${DataTempPath}/"{} \;
find "$DataTempPath" -type l | sed -e "p;s/A[0-9]*/A${today}/" | xargs -n2 mv
mv $DataTempPath/* $DataSetPath
这将作为cron作业插入,每15分钟运行一次,这在源目录包含有效数据时不是问题。 但是当它不包含任何文件时,我会在第二个find命令和mv命令
上出错我想要的是如果第一行没有创建任何新链接的话,不会执行脚本的最后两行
答案 0 :(得分:2)
GNU xargs
支持--no-run-if-empty
参数,引用文档“如果标准输入完全为空,请不要运行命令。默认情况下,即使有命令,命令也会运行一次没有输入“。
这应该有助于避免xargs
错误(假设您正在运行GNU xargs
)
答案 1 :(得分:0)
检查命令的状态:
find . -type f -name "*${regex}-*" -exec ln -s {} "${DataTempPath}/"{} \;
if [[ $? == 0 ]]; then
find "$DataTempPath" -type l | sed -e "p;s/A[0-9]*/A${today}/" | xargs -n2 mv
mv $DataTempPath/* $DataSetPath
fi