linux shell编程 if语句无法判断变量是不是相等

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux shell编程 if语句无法判断变量是不是相等相关的知识,希望对你有一定的参考价值。

while(($i < mark))
do
j=`expr $longt - 1 - $i`
echo $j
echo $i
num1=$stragrop[$i]
num2=$stragrop[$j]
echo $num1
echo $num2
if(($num1 != $num2))
then
echo "ok"
else
echo "no"
fi
i=$((i + 1))
done

其中两个变量存长度1的字符串。不管字母是否相等,if内表达式判断均为false

参考技术A (($num1 != $num2))里面的是算术表达式
用(($num1 - $num2))
或者[ [ $num1 != $num2 ]]本回答被提问者和网友采纳
参考技术B 是bash吗?

如果是,把"if(($num1 != $num2))"
换成"if [ $num1 != $num2 ]"试试.
注意:其中的空格不能省略.
参考技术C 字符串比较,应该有专门的函数。

linux中shell编程

条件判断,控制结构:

单分支if语句

if 判断条件; then  

    statement1  

    statement2  

    ...

fi

双分支的if语句:

if 判断条件; then  

    statement1  

    statement2  

    ...

else  

    statement3  

    statement4  

    ...

fi

多分支的if语句:

if 判断条件1; then  

    statement1  

    ...

elif 判断条件2; then

    statement2  

    ...

elif 判断条件3; then  

    statement3  

    ...

else  

    statement4  

    ...

fi

 

测试方法:

  • [ expression ]
  • [[ expression ]]
  • test expression

bash中常用的条件测试有三种:

整数测试:

  •  -eq: 测试两个整数是否相等;比如 $A -eq $B
  •  -ne: 测试两个整数是否不等;不等,为真;相等,为假;
  •  -gt: 测试一个数是否大于另一个数;大于,为真;否则,为假;
  •  -lt: 测试一个数是否小于另一个数;小于,为真;否则,为假;
  •  -ge: 大于或等于
  •  -le:小于或等于

例子:
INT1=63
INT2=77
[ $INT1 -eq $INI2 ]
[[ $INT1 -eq $INT2 ]]
test $INT1 -eq $INT2 

 文件测试: 

  • -e FILE:测试文件是否存在
  • -f FILE: 测试文件是否为普通文件
  • -d FILE: 测试指定路径是否为目录
  • -r FILE: 测试当前用户对指定文件是否有读取权限;
  • -w
  • -x 

  例子:[ -e /etc/inittab ] [ -x /etc/rc.d/rc.sysinit ] 

 

shell中如何进行算术运算:
A=3
B=6
1、let 算术运算表达式
 let C=$A+$B
2、$[算术运算表达式]
 C=$[$A+$B]
3、$((算术运算表达式))
 C=$(($A+$B))
4、expr 算术运算表达式,表达式中各操作数及运算符之间要有空格,而且要使用命令引用
 C=`expr $A + $B`

 

定义脚本退出状态码

exit: 退出脚本 exit # 如果脚本没有明确定义退出状态码,那么,最后执行的一条命令的退出码即为脚本的退出状态码;

测试脚本是否有语法错误: bash -n 脚本

bash -x 脚本:单步执行 

bash变量的类型:  

本地变量(局部变量)  

环境变量  

位置变量:   $1, $2, ...   shift  

特殊变量:   

  • $?   
  • $#:参数的个数   
  • $*: 参数列表   
  • [email protected]:参数列表















以上是关于linux shell编程 if语句无法判断变量是不是相等的主要内容,如果未能解决你的问题,请参考以下文章

Shell编程中 if语句判断时怎样写判断条件判断变量a若为整型变量则执行后面的语句

Linux实操篇—— Shell 编程入门变量运算符条件判断流程控制

Linux实操篇—— Shell 编程入门变量运算符条件判断流程控制

Linux Shell脚本编程case条件语句

liunx 下的shell语句 if [ ! -d /$1/$2/$3/ ]是啥意思?

Linux Shell编程 条件判断语法