Estou simplesmente me perguntando se, em um script bash, uma nova linha é funcionalmente 100% equivalente a &&
?
por exemplo:
#!/bin/bash
7z x "${file}"
mv "${file}" "${new_file}"
contra
#!/bin/bash
7z x "${file}" && mv "${file}" "${new_file}"
GNU bash, versão 5.1.16(1)-release (x86_64-pc-linux-gnu)
Não:
&&
só executa o comando seguinte se o comando anterior for bem-sucedido. Por issoapenas renomeia o arquivo se
7z
for concluído com êxito, enquantoserá executado
mv
em todos os casos (e falhará se${file}
não existir).Consulte Quais são os operadores de controle e redirecionamento do shell? para obter detalhes (em particular, descreve como as novas linhas também não são exatamente iguais a
;
).