linux shell 字符串比较问题

abacabcc 2018-03-31 09:28:53

abc = "123"
if ["${abc}"="${abc}"]
then
echo "eq">>./log.txt
else
echo "no eq">>./log.txt

fi


比较两个字符串,为什么我怎么试使出都是 no eq ,新人刚学,求大神点拨一下
...全文
537 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
abacabcc 2018-04-08
  • 打赏
  • 举报
回复
引用 3 楼 chenmeimei_8899 的回复:
[quote=引用 2楼a905815661 的回复:]因为你的中括号里没有在两边留空格。它应该会说XXX command not found,所以测试失败,执行else里的语句。正确的写法:
abc = "123"
if [ "${abc}"="${abc}" ]
then
        echo "eq">>./log.txt
else
        echo "no eq">>./log.txt
fi
正解,好多刚开始学的时候都遇到这样的问题[/quote] “它应该会说XXX command not found”>>请问什么情况下才会显示这个报错,我是写在 .sh文件里的,跑起来也没有报错, 要是有报错感觉也会比较容易解决一些
abacabcc 2018-04-08
  • 打赏
  • 举报
回复
引用 2 楼 a905815661 的回复:
因为你的中括号里没有在两边留空格。它应该会说XXX command not found,所以测试失败,执行else里的语句。正确的写法:
abc = "123"
if [ "${abc}"="${abc}" ]
then
        echo "eq">>./log.txt
else
        echo "no eq">>./log.txt
fi
感谢,这种问题真的很难受..
骏马金龙 2018-04-08
  • 打赏
  • 举报
回复
引用 6 楼 abacabcc 的回复:
[quote=引用 3 楼 chenmeimei_8899 的回复:] [quote=引用 2楼a905815661 的回复:]因为你的中括号里没有在两边留空格。它应该会说XXX command not found,所以测试失败,执行else里的语句。正确的写法:
abc = "123"
if [ "${abc}"="${abc}" ]
then
        echo "eq">>./log.txt
else
        echo "no eq">>./log.txt
fi
正解,好多刚开始学的时候都遇到这样的问题[/quote] “它应该会说XXX command not found”>>请问什么情况下才会显示这个报错,我是写在 .sh文件里的,跑起来也没有报错, 要是有报错感觉也会比较容易解决一些 [/quote] 这要从if语句说起。"if condition;then"中的condition是命令语句,if通过这个命令的返回状态码来判断是否满足条件。[ "${abc}"="${abc}" ]看上去像是一种语法格式,但它其实是一条命令,等价于test命令。因此,如果你的[ "${abc}"="${abc}" ]中间如果没有空格隔开,那么这一整段当作命令的时候Bash会说"["${abc}"="${abc}"] command not found“。
迷茫的蜉蝣 2018-04-03
  • 打赏
  • 举报
回复
中括号 两边要留空格
FLYUP_CHEN 2018-04-01
  • 打赏
  • 举报
回复
引用 2楼a905815661 的回复:
因为你的中括号里没有在两边留空格。它应该会说XXX command not found,所以测试失败,执行else里的语句。正确的写法:
abc = "123"
if [ "${abc}"="${abc}" ]
then
        echo "eq">>./log.txt
else
        echo "no eq">>./log.txt
fi
正解,好多刚开始学的时候都遇到这样的问题
骏马金龙 2018-03-31
  • 打赏
  • 举报
回复
因为你的中括号里没有在两边留空格。它应该会说XXX command not found,所以测试失败,执行else里的语句。正确的写法:
abc = "123"
if [ "${abc}"="${abc}" ]
then
        echo "eq">>./log.txt
else
        echo "no eq">>./log.txt
fi
abacabcc 2018-03-31
  • 打赏
  • 举报
回复
比较两个字符串,为什么我怎么试使出都是 no eq ,新人刚学,求大神点拨一下

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧