Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在bash中,什么';s[[test1&;test2]]与[[test1]]之间的差异&;[[test2]]_Bash - Fatal编程技术网

在bash中,什么';s[[test1&;test2]]与[[test1]]之间的差异&;[[test2]]

在bash中,什么';s[[test1&;test2]]与[[test1]]之间的差异&;[[test2]],bash,Bash,以下两种bash评估有什么区别(如果有): if [[ -s $file1 && $file1 -nt $file2 ]]; then if [[ -s $file1 ]] && [[ $file1 -nt $file2 ]]; then 没有区别。它们在功能上完全相同 有趣的是,如果您使用[而不是[[,则实际上存在可检测的差异,这是由评估顺序引起的: [ -s "$file1" -a "$file1" -nt "$(echo side effect >

以下两种bash评估有什么区别(如果有):

if [[ -s $file1 && $file1 -nt $file2 ]]; then

if [[ -s $file1 ]] && [[ $file1 -nt $file2 ]]; then

没有区别。它们在功能上完全相同


有趣的是,如果您使用
[
而不是
[[
,则实际上存在可检测的差异,这是由评估顺序引起的:

[ -s "$file1" -a "$file1" -nt "$(echo side effect >&2)" ] 

[ -s "$file1" ] && [ "$file1" -nt "$(echo side effect >&2)" ] 
在这种情况下,第一行将打印“副作用”,而第二行不会打印

然而,这同样只适用于
[
,而不适用于
[[]]