![](/img/trans.png)
[英]How to write a shell script to output the result of a query to a text file
[英]How to write output to a file in if else statement in shell script
我正在尝试将输出写入文件,正确的输出将打印在成功的文件中,并在不成功的日志中打印相同的输出。 在不成功的日志中,它应该只打印不成功的日志,但它也打印成功的日志。
for TASKARN in `aws ecs list-tasks --cluster APPS --desired-status RUNNING --region us-east-1 --service-name coreservice-service | jq .taskArns[] | sed 's/.$//; s/^.//' | cut -d":" -f 6 | cut -d"/" -f 3`
do
echo $TASKARN
cd /tmp/
val=`find core-$TASKARN.log -maxdepth 0 -daystart -mtime -1`
if [ $val == core-$TASKARN.log ]
then
echo " core-$TASKARN.log is present " >> /opt/successfull.log
else
echo " core-$TASKARN.log is not present " >> /opt/unsuccessfull.log
fi
done
在成功的日志中
core-26f374a6a.log存在
在不成功的日志中
core-26f374a6a.log不存在
除了shellcheck建议,你也可以考虑以下几点。
TASKARN
替换taskarn
。 全大写变量保留为环境变量。 如果设置完整的大写变量,则可能会意外覆盖环境变量。 考虑删除cd /tmp/
。 相反:
val=$(find /tmp/ "core-${taskarn}.log" -maxdepth 0 -daystart -mtime -1) # When you embed a variable inside string consider curly braces. See reference.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.