Исполняемые файлы не работают как обычно

Исполняемые файлы не работают как обычно

Когда я ввожу эту команду

nohup CloudCompute.command &

это дает результат

[1] 782

Это то, что мне нужно. (Кстати, это номер PID)

Итак, когда я запускаю эту же команду в исполняемом файле ( .command) и пытаюсь добавить вывод в файл, это не работает. Он просто печатает то, что CloudCompute.commandвыводит, а не фактический PID, который отображается при запуске. Я уверен, что он находится в том же каталоге.

Почему это происходит? Что я могу сделать, чтобы исполняемый файл выдавал тот же вывод, что и при ручном вводе?

Спасибо

решение1

Почему это происходит?

Этот вывод:

[1] 782

не из исполняемого файла. Это то, что bashпишет в терминал, когда вы выполняете что-то в фоновом режиме. Это номер задания [1]и PID 782процесса. Позже, когда процесс завершится, вы увидите что-то вроде:

[1]+  Done                    command

Это также связано с тем, bashчто мы заметили, что процесс с заданием номер 1 завершен.

При запуске команды в фоновом режиме PID сохраняется в переменной $!:

$ sleep 10 &
[1] 1234
$ echo $!
1234

Что можно сделать, чтобы исполняемый файл выдавал тот же результат, что и при ручном вводе?

Поэтому ваш исполняемый файлявляетсяпроизводя тот же результат.

Связанный контент