热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

为什么我有一个整数表达式预期错误:at`echo$1|grep-q@`if[$at-ne0];thenechoblablaelseechobloblofi$at已设置,

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

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


推荐阅读
author-avatar
卢-lydia09
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有