📜  && 和 ; 的区别Linux 中的链接运算符(1)

📅  最后修改于: 2023-12-03 14:58:58.928000             🧑  作者: Mango

Linux 中的链接运算符:'&&' 和 ';'

在 Linux 中,链接运算符用于连接多个命令,以便在同一行中一次执行多个命令。两个常见的链接运算符是 '&&' 和 ';'。

1. '&&' 运算符

'&&' 运算符表示前一个命令成功执行后才会执行后续的命令。如果前一个命令返回了非零的退出状态码(表明命令执行失败),则 '&&' 运算符会立即停止后续命令的执行。

例如,考虑以下命令:

command1 && command2 && command3
  • 如果 command1 执行成功,返回退出状态码为 0,则会继续执行 command2
  • 如果 command2 也执行成功,则会继续执行 command3
  • 如果任何一个命令失败,则后续命令将不会被执行。
2. ';' 运算符

';' 运算符表示无论前一个命令是否成功执行,后续的命令都会被执行。

例如,考虑以下命令:

command1 ; command2 ; command3

不论 command1command2command3 是否成功执行,所有命令都会按顺序执行。

但是如果你只使用 ';',不会关注命令的退出状态码,因此有时候可能无法察觉到前一个命令是否执行成功。

示例

以下是一些示例,演示了 '&&' 和 ';' 运算符的不同行为:

# 使用 '&&' 运算符
ls && echo "List command succeeded."
echo "This will always be printed."

# 使用 ';' 运算符
ls ; echo "List command executed."
echo "This will always be printed."

在上述示例中,如果 ls 命令成功执行,即目录中存在文件,那么第一个 echo 命令将被执行,而第二个 echo 命令将总是被执行。无论 ls 命令是否成功执行,';' 运算符后面的命令都会执行。

可以看出,'&&' 运算符在某些情况下更常用,因为它允许根据前一个命令的执行结果来决定是否执行后续的命令。

总结
  • '&&' 运算符表示前一个命令成功执行后才会执行后续的命令。
  • ';' 运算符表示无论前一个命令是否成功执行,后续的命令都会被执行。

因此,根据需求选择适当的运算符来链接多个命令,以便在 Linux 中更有效地执行命令序列。