我想在bash中运行以下命令
ruby ......
成功时,命令会输出字符串“Created all things”。
如何运行命令并检查文本Created all things
的输出以确保它成功,以便我可以使用bash运行其他命令?
答案 0 :(得分:1)
您可以使用$(...)
语法将输出保存在变量中,然后执行常规的bash检查,如:
output=$(ruby ....)
if [ "$output" = "Created all things" ]; then
# success, keep going
else
# failure, clean up
fi
鉴于你想要查看它是否以该字符串结尾的评论,你可以改为使用bash正则表达式:
if [[ "$output" =~ Created\ all\ things$ ]]; then
...
答案 1 :(得分:0)
与Eric编写的内容类似,但这将在整个输出中搜索字符串,而不仅仅是结尾。
results=$(ruby.......)
if [[ $(echo ${results} | grep -c "Created all things") != "0" ]] ; then
echo "Command appears to be successful"
else
echo "Command appears to have failed"
fi