Попытка раскошелиться процесса в bash скрипт - PullRequest
1 голос
/ 05 января 2020

Я читаю bash создание сценариев и пробую простой сценарий разветвления, где сценарий будет разветвлять процесс, а затем дочерний процесс выполнит exe c выражение

Сценарий, как показано ниже

#!/bin/bash
echo "I am parent process"
echo "my pid is $$"
pid=fork()
if [ $pid eq 0 ]; then
        echo "parent process resumed"
else
        echo "child process pid is $pid"
        exec ls -l
fi

Это не работает. linux bash не поддерживает fork как это?

Обновлено: редактирование вывода

I am parent process
my pid is 61978
new_child_process: line 4: syntax error near unexpected token `('
new_child_process: line 4: `pid=fork()'

1 Ответ

4 голосов
/ 05 января 2020

fork не доступен напрямую в bash, но может эффективно имитироваться с &.

Пара других вещей об этом коде:

  • Для сравнения чисел c следует использовать -eq, а не eq (обратите внимание на дополнительный da sh -).

  • Рекомендуется также использовать [[ ]] для испытаний вместо [ ].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...