Вы сделали обоих cmd1
и cmd2
выполненный параллельно. Вы сказали: “Запустите cmd2 в фоновом режиме и разъедините любую связь с ним. Запустите cmd1 в фоновом режиме и разъедините любую связь с ним”. Вы имели в виду: “Запустите cmd2 в фоновом режиме; когда это будет завершено, запустите cmd1 (также в фоновом режиме)”. С тех пор больше нет никакой связи с фоновой задачей, необходимо создать фоновую задачу, которая выполняет cmd2 затем cmd1. Это cmd2; cmd1
(или скорее cmd2 && cmd1
для выполнения cmd1, только если cmd2 успешно выполняется), и необходимо будет сказать nohup
запустить оболочку, работающую в фоновом режиме за этим.
nohup sh -c './cmd2 >result2 && ./cmd1 >result1' &
posxly, вам нужно только расширение параметров :
#!/bin/bash
printf '%s\n' "${0##*/}"