换行符相当于 bash 脚本中的 && 吗?

换行符相当于 bash 脚本中的 && 吗?

我只是想知道,在 bash 脚本中,新行在功能上是否 100% 等同于&&

例如:

#!/bin/bash

7z x "${file}"

mv "${file}" "${new_file}"

#!/bin/bash

7z x "${file}" && mv "${file}" "${new_file}"

GNU bash,版本 5.1.16(1)-release (x86_64-pc-linux-gnu)

答案1

否:&&如果前面的命令成功,则仅运行后面的命令。因此

7z x "${file}" && mv "${file}" "${new_file}"

7z仅在成功完成时才重命名文件,而

7z x "${file}"
mv "${file}" "${new_file}"

将在所有情况下运行(如果不存在mv则失败)。${file}

shell 的控制和重定向运算符是什么?详细信息(特别是,它描述了新行与 不完全相同 ;)。

相关内容