我正在编写一个shell脚本,我在其中生成一个csv文件,之后在linux中附加并发送带有mutt命令的csv文件。但问题是csv文件没有生成,仍然执行mutt命令,它说找不到文件。那么有什么方法可以检查如果csv文件生成的命令完成,那么只有mutt命令execute.Below是我的脚本的内容,这两个语句一个接一个地执行。
mysql --user=root --password= erpint -B -e "select * from user_info;" | sed "s/'/\'/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g" > /home/mayuri/detail.csv
mutt -s "Mutt attach" srini@erpint.com -a /home/mayuri/detail.csv < /home/mayuri/detail.csv
答案 0 :(得分:0)
使用bash,
检查文件是否存在:
#generate you file ....
if [ ! -f /YourPathToTheFile/yourFile.txt ];
then
echo "no file found, exiting and doing nothing";
fi
#send your file
答案 1 :(得分:0)
所以,从字面上看,等待文件存在:
while [ ! -f /home/mayuri/detail.csv ]; do
sleep 1
done
mutt -s "Mutt attach" srini@erpint.com -a /home/mayuri/detail.csv < /home/mayuri/detail.csv
答案 2 :(得分:-1)
你可以用$?如果上一个命令成功执行,则设置为0;如果失败,则设置为1:
mysql --user=root --password= erpint -B -e "select * from user_info;" | sed "s/'/\'/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g" > /home/mayuri/detail.csv
if [ $? -eq 0 ]; then
mutt -s "Mutt attach" srini@erpint.com -a /home/mayuri/detail.csv < /home/mayuri/detail.csv
fi