我知道即使在 时也会执行第二个命令i != 1
。
(( i == 1)) && florg="${fl%-*.png}.org" ; touch "$florg"
但希望这两个命令只执行一次。
答案1
最简单的事情是使用常规if
语句:
if ((i == 1)); then
florg="${fl%-*.png}.org"
touch "$florg"
fi
否则使用大括号对命令进行分组:
(( i == 1)) && { florg="${fl%-*.png}.org" ; touch "$florg"; }
看3.2.5.3 分组命令在手册中。
如果不需要保留变量,可以使用括号(在子 shell 中执行命令)。括号对空格和分号更宽容:
((i == 1)) && (florg="${fl%-*.png}.org"; touch "$florg")