我应该在POSIX shell中使用“test”或“[”“]”吗?
发布时间:2020-12-15 21:55:19 所属栏目:安全 来源:网络整理
导读:我相信以下两个代码片段在POSIX兼容的 shell中都是有效的: 选项1: if [ "$var" = "dude" ]then echo "Dude,your var equals dude."fi 选项2: if test "$var" = "dude"then echo "Dude,your var equals dude."fi 首选哪种语法,为什么?在某些情况下,是否有
我相信以下两个代码片段在POSIX兼容的
shell中都是有效的:
选项1: if [ "$var" = "dude" ] then echo "Dude,your var equals dude." fi 选项2: if test "$var" = "dude" then echo "Dude,your var equals dude." fi 首选哪种语法,为什么?在某些情况下,是否有理由使用其中一种? 解决方法
没有功能差异,使其成为纯粹的风格选择,没有广泛接受的指导方针.
The bash-hackers wiki有一个关于经典(POSIX兼容)测试的扩展部分,对最佳实践和陷阱有很多关注,并且没有优先选择的位置.
此外,the POSIX specification for 也就是说,测试的一个优点是,它不太有利于人们从其他语言中引入期望导致代码损坏或错误.例如,编写[$foo = 1]而不是正确的[“$foo”= 1]是一个常见的错误,但人们并没有广泛看到写测试$foo = 1:这在视觉上更明显,测试“ $foo“= 1遵循与其他shell命令相同的解析规则,因此需要关于引用和空格的相同关注. [1]例如-a,-o,(和),以及在名称[)下开始的实例上具有四个以上参数(不包括尾随)的任何用法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |