Если вы должны использовать nohup, вы можете использовать точку с запятой внутри скрипта, чтобы указать, что команда должна быть выполнена после завершения последней, как показано в примере test.sh ниже:
#!/bin/bash
find / -name "*.sh" ; echo END_OF_COMMAND
.... они используют & для запуска скрипта в фоновом режиме с помощью tail -f nohup.out для отображения вывода на экране во время работы скрипта:
$ nohup ./test.sh & tail -f nohup.out
Таким образом, высценарий будет выполнять последовательность в фоновом режиме, в то время как выходные данные все еще будут отображаться на экране.
Однако, как указано, использование tee
будет лучшим подходом, чтобы показать и перенаправить в файл как STDOUT, так и STDERRв то же время вы можете использовать tee со следующими аргументами:
$ ./test.sh ; echo END_OF_COMMAND 2>&1 | tee output.log