sh与csh中的算符优先顺序

| 1 Comment | No TrackBacks |

第一个脚本(1.sh):
#!/bin/sh
echo test
exit 1

测试命令:./1.sh | grep test && echo 1

csh:
./1.sh | grep test && echo e
test

sh:
./1.sh | grep test && echo e
test
e

原因

测试程序存在两个严重问题,导致csh和sh产生不同的结果。

第一个问题:Unix系统假定程序正常结束时返回码为0。
第二个问题:测试脚本语义不明确。

如果将测试脚本修改为:
./1.sh | ( grep test && echo e )

则语义明确,因此csh和sh会得到一样的结果。

No TrackBacks

TrackBack URL: https://blog.delphij.net/mt/mt-tb.cgi/1279

1 Comment

新的模板

windows下firefox中字体偏小

Leave a comment

Monthly Archives

Pages

OpenID accepted here Learn more about OpenID
Powered by Movable Type 5.2.3