Я просто читал о том, как работают оболочки Unix (в частности, bash ), и я попробовал что-то, что не имело для меня смысла.
Насколько я понимаю, source команда запускает программу, которую вы даете ей в текущем процессе оболочки, вместо того, чтобы разветвлять дочерний процесс.
С другой стороны, выполнение команды, за которой следует & возвращает управление пользователю до завершения запускаемого процесса. Если вы запускаете команду без source но с & , текущая оболочка возвращает управление пользователю до завершения дочернего процесса.
Но когда я создал файл с именем test.txt содержащий hello world , и запустил:
source /bin/cat test.txt
… Я получил -bash: ????: command not found .
Точно так же, когда я пытался загрузить свой virtualenv, используя
source ./venv/bin/activate &
Я только что получил статус выхода и идентификатор процесса [1] 26489
В чем дело? Особенно для второй команды. Я не совсем понимаю.
Как работает source , и что происходит, когда вы используете его с &?
