如何使用egrep变量-Unix shell脚本

发布于 2024-08-10 20:09:40 字数 243 浏览 5 评论 0原文

我正在尝试使用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

满天都是小星星 2024-08-17 20:09:41

grep 有一个 -q 选项来抑制输出

所以:

egrep -q '^[0-9]+

grep has a -q option that suppresses output

So:

egrep -q '^[0-9]+

清欢 2024-08-17 20:09:41

你可以使用 awk

$ echo "1234" | awk '{print $1+0==$1?"ok":"not ok"}'
ok
$ echo "123d4" | awk '{print $1+0==$1?"ok":"not ok"}'
not ok

you can use awk

$ echo "1234" | awk '{print $1+0==$1?"ok":"not ok"}'
ok
$ echo "123d4" | awk '{print $1+0==$1?"ok":"not ok"}'
not ok
生生漫 2024-08-17 20:09:40

要简单地抑制输出,您可以将其重定向到空设备。

echo $1 | egrep '^[0-9]+

您可能还需要考虑使用 -c 选项来获取匹配项的计数,而不是使用状态。

另外,除非您使用 csh,否则状态将存储在 $? 中,而不是 $status

>/dev/null if ($status == 0) then set numvar = $1 else echo "Invalid input" exit 1 endif

您可能还需要考虑使用 -c 选项来获取匹配项的计数,而不是使用状态。

另外,除非您使用 csh,否则状态将存储在 $? 中,而不是 $status

To simply suppress output you can redirect it to the null device.

echo $1 | egrep '^[0-9]+

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

>/dev/null if ($status == 0) then set numvar = $1 else echo "Invalid input" exit 1 endif

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文