我正在尝试创建一个bash脚本来检查特定命令是否输出了预期结果。输出应该是
N user(s)
已导出到输出文件中。
如果N
是数字
我使用此代码进行检查,但这只会检查特定的字符串:
./command.sh -e | grep 'string' &> /dev/null
if [ $? == 0 ]; then
echo "PASS"
fi
答案 0 :(得分:0)
使用以下 grep 命令只会从输出中获取数字结果:N user(s)
:
grep -oP '^[0-9]+'
示例:
echo '1 user(s)' | grep -oP '^[0-9]+'
输出:
1
echo '100 user(s)' | grep -oP '^[0-9]+'
输出:
100
请注意,输出应为N user(s)
,您是否有其他可能会破坏此正则表达式的情况?
更新
为了检查整个输出,你可以使用这个:
echo '1 user(s) has been exported in the output file' | grep -P '^[0-9]+\suser\(s\)\shas\sbeen\sexported\sin\sthe\soutput\sfile'
OR
echo '1 user(s) has been exported in the output file' | grep -P '^[0-9]+\suser\(s\)\s(\w|\s)+'
OR
echo '1 user(s) has been exported in the output file' | grep -P '^[0-9]+\s\w+\(\w\)(\s|\w)+'
输出:
1 user(s) has been exported in the output file