Bash 脚本 if -eq

标签 bash if-statement equals

bash 脚本新手,我需要检查组中的第一个单词是否等于用户中的第二个单词。

Group=`echo $rules | egrep -v 'Test'`
Users=`echo $rules | grep -i 'Test' | awk '{print substr($0, index($0,$2))}'`

if [ '$Group' -eq '$Users' ];
then
echo $Group
echo $Users

else
:
fi

我可以使用这样的东西吗?这怎么可能?

if [ '$Group $1' -eq '$Users $2' ];

if [ '^$Group' -eq '^$Users' ];

最佳答案

运算符-eq用于整数比较。 如果你想比较字符串,你必须使用=,如下所示:

if [ "$a" = "$b" ]

这相当于

if [ "$a" == "$b" ]

但不等于(注意空格)

if [ "$a"="$b" ]

但是,如果您想在 if 语句中使用正则表达式(您使用了 ^,它不是全局模式通配符),请查看 here

也就是说,您应该在 if 语句之前进行拆分,并将用户和组放入两个数组中。

关于Bash 脚本 if -eq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36932776/

相关文章:

bash - 如何将目录添加到文件.bashrc中的PATH?

linux - 找到一个模式并替换

java - Java 对带有 final 变量的 if 语句有多聪明

java - 更好的 : switch-case or if-else?

Java关于equals和compareTo方法的问题

java - 是否有任何内置实用程序可以检查 "null"字符串而不是 null?

java - equals() 方法检查 X 和 Y 坐标

bash - tar:使用 -X 时从成员名称中删除前导/(排除文件)

Bash在执行前将引号插入字符串

c++ - C++ 中 if 语句中接口(interface)的对象