如何比较for循环bash

时间:2015-11-28 17:33:28

标签: linux bash

我想创建if语句,但在这个语句中有一些错误

for i in ${@:2} ; do
 if (( $2 -eq $i ))
         then 
         continue
         fi
    done

如何修复我的if语句

2 个答案:

答案 0 :(得分:2)

您的陈述仅适用于整数。

如果您想将它们作为字符串进行比较,可以使用[[ "string1" = "string2" ]]

$ cat -v myscript 
#!/bin/bash
for i in "${@:2}" ; do
  if [[ "$2" = "$i" ]]
  then
    echo "$2 and $i are the same"
  else
    echo "$2 and $i are different"
  fi
done

$ chmod +x myscript
$ ./myscript dummy target foo bar target
target and target are the same
target and foo are different
target and bar are different
target and target are the same

从这个可运行的例子可以看出,它有效。如果您发现它不在您的系统上,您应该提供一个完整的示例,如上所示。

答案 1 :(得分:0)

我建议

if [ "$2" = "$i" ]