变量的值来自运行其他程序的结果,例如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的退出码。
用命令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本回答被提问者采纳
#!/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本回答被提问者采纳