当前位置: 技术问答>linux和unix
函数传递数字
来源: 互联网 发布时间:2016-05-15
本文导语: 代码如下: 1 #!/bin/bash 2 function eee 3 { 4 if [[ $a -eq "bob" ]] && [[ $b -eq "555" ]] 5 then 6 echo "a" 7 else 8 echo "b" 9 fi ...
代码如下:
1 #!/bin/bash
2 function eee
3 {
4 if [[ $a -eq "bob" ]] && [[ $b -eq "555" ]]
5 then
6 echo "a"
7 else
8 echo "b"
9 fi
10 }
11 eee bob 555
运行结果是
b
但是如果把第四行改成字符,比如if [[ $a -eq "bob" ]] && [[ $b -eq "www" ]]第十一行改成eee bob www后,运行结果是a
,我想问的时候传递数字555为什么会出现不相等现象。谢谢
1 #!/bin/bash
2 function eee
3 {
4 if [[ $a -eq "bob" ]] && [[ $b -eq "555" ]]
5 then
6 echo "a"
7 else
8 echo "b"
9 fi
10 }
11 eee bob 555
运行结果是
b
但是如果把第四行改成字符,比如if [[ $a -eq "bob" ]] && [[ $b -eq "www" ]]第十一行改成eee bob www后,运行结果是a
,我想问的时候传递数字555为什么会出现不相等现象。谢谢
|
eee bob 555
改成
eee bob "555"
试一试
改成
eee bob "555"
试一试
|
lz 在乱用, -eq 比较的是整数
而且函数参数是用 $1 $2 来取的
Note that integer and string comparison use a different set of operators.
integer comparison
-eq
string comparison
=
==
而且函数参数是用 $1 $2 来取的