如何使用egrep变量-Unix shell脚本
我正在尝试使用egrep和正则表达式来验证输入。这是脚本(c-shell)中的行:
echo $1 | egrep '^[0-9]+$'
if ($status == 0) then
set numvar = $1
else
echo "Invalid input"
exit 1
endif
如果我通过管道回显到egrep,它会起作用,但它也会在屏幕上打印变量,这是我不做的事情不需要。
I’m trying to validate input by using egrep and regex.Here is the line from script (c-shell):
echo $1 | egrep '^[0-9]+
If I pipe echo to egrep it works, but it also prints the variable on the screen, and this is something I don't need.
if ($status == 0) then
set numvar = $1
else
echo "Invalid input"
exit 1
endif
If I pipe echo to egrep it works, but it also prints the variable on the screen, and this is something I don't need.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
grep
有一个-q
选项来抑制输出所以:
grep
has a-q
option that suppresses outputSo:
你可以使用 awk
you can use awk
要简单地抑制输出,您可以将其重定向到空设备。
您可能还需要考虑使用
-c
选项来获取匹配项的计数,而不是使用状态。另外,除非您使用
csh
,否则状态将存储在$?
中,而不是$status
中To simply suppress output you can redirect it to the null device.
You might also want to consider using the
-c
option to get the count of matches instead of using using the status.Also, unless you are using
csh
, the status is stored in$?
not in$status