Esta é uma sintaxe errada no bash:
nohup ./NEW_SCRIPT_NAME.sh & && rm NEW_SCRIPT_NAME.sh
De Shellcheck :
Line 1:
nohup ./NEW_SCRIPT_NAME.sh & && rm NEW_SCRIPT_NAME.sh
^-- SC1070: Parsing stopped here. Mismatched keywords or invalid parentheses?
Você não pode simplesmente executar something & && something
, porque colocar o primeiro comando em segundo plano evita que você espere pelo código de retorno do script.
Você pode executar todo o pipeline no nohup em segundo plano (preferencialmente como um script):
nohup ./run.sh &
ou se você realmente deseja ter tudo em um comando, é necessário aguardar o resultado:
nohup ./NEW_SCRIPT_NAME.sh & wait && rm NEW_SCRIPT_NAME.sh
, que aguardará o término do script antes de removê-lo.