我只是想知道,在 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 的控制和重定向运算符是什么?详细信息(特别是,它描述了新行与 不完全相同 ;
)。