如何在bash shell中比较字符串和整数

时间:2013-11-26 08:36:00

标签: linux bash shell

在我的程序中,我必须将字符串与像

这样的整数进行比较
            temp=$(taskset -p $pid)
            if[ ${temp:35:1} -eq $cpu || ${temp:35:2} -eq $cpu ] ; then

这里我将temp的子字符串与整数cpu进行比较。 但是,当我运行此脚本时,我得到以下错误

第16行:如果[$ {temp:35:1} -eq $ cpu ||},意外标记then' line 16:附近的语法错误$ {temp:35:2} -eq $ cpu];然后“

如何将此字符串与整数进行比较?

3 个答案:

答案 0 :(得分:2)

||用于shell,使用-o作为测试命令:

if [ ${temp:35:1} -eq $cpu -o ${temp:35:2} -eq $cpu ]

您可以用

替换整个事物
if [ $(taskset -p $pid|awk '{print $NF}') = $cpu ]

答案 1 :(得分:0)

语法错误。

if [ condition1 ] || [ condition2 ] && [ condition3 ] ; then

答案 2 :(得分:0)

要比较整数和字符串之间的值,您应该比较双引号内的2个变量:     “$ a”==“$ b”