针对某些条件执行多个命令

针对某些条件执行多个命令

我知道即使在 时也会执行第二个命令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")

相关内容