微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 为什么要有“整数表达式”?

为什么我有一个整数表达式预期错误

at=`echo $1 | grep -q "@"`
if [ $at -ne 0 ]; then
    echo "blabla"
else
    echo "bloblo"
fi

$at已设置,测试在脚本外正常工作

解决方法:

在测试grep -q的结果时,你想测试$?不是grep的输出,它将是空的

at=$(echo "$1" | grep -q "@")
if [ $? -ne 0 ]; then ...

或者干脆

if echo "$1" | grep -q "@"; then ...

或者,更多的打击

if grep -q "@" <<< "$1"; then ...

或者,不要调用grep:

if [[ "$1" == *@* ]]; then ...

要么

case "$1" in
  *@*) echo "match" ;;
  *) echo "no match" ;;
esac

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐