gpt4 book ai didi

linux - 检查 bash 中的命令是否输出了正确的动态值和字符串

转载 作者:太空宇宙 更新时间:2023-11-04 12:28:10 24 4
gpt4 key购买 nike

我正在尝试制作一个 bash 脚本来检查特定命令是否已输出预期结果。输出应该是N user(s) 已在输出文件中导出。

如果 N 是数字中的动态值,我应该如何检查它

我用这段代码来检查,但这只会检查特定的字符串:

./command.sh -e | grep 'string' &> /dev/null
if [ $? == 0 ]; then
echo "PASS"
fi

最佳答案

使用以下 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'

echo '1 user(s) has been exported in the output file' | grep -P '^[0-9]+\suser\(s\)\s(\w|\s)+'

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

关于linux - 检查 bash 中的命令是否输出了正确的动态值和字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44042502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com