shell如何判断两个含特殊字符的字符串变量是否相等

变量的值来自运行其他程序的结果,例如result1=`./a.out`,result=`./b.out`,我想比较result1和result2是否相等。
问题是程序返回结果中含有"",echo "$result1"显示为this is "test.c",含有特殊字符,如果用"$result1" = "result2"判断会报错,该怎么比较二者是否相同值?

第1个回答  2010-01-05
把其他程序的返回重定向到临时文件。
用命令cmp比较临时文件。(cmp -s "$file1" "$file2")
测试cmp的退出码。

参考资料:鸟哥私房菜——信鸟哥,得永生

第2个回答  2010-01-05
测试了一下 工作很好呀没有问题呀,可以很好的工作

#!/bin/bash

a="\"test.c\""
b="\"test.c\""

echo $a
echo $b

[ "$a" == "$b" ] && echo 0 || echo 1
a="\"test.c\"\""
b="\"test.c\""

echo $a
echo $b

[ "$a" == "$b" ] && echo 0 || echo 1本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网