используя eval и background процесс в одной строке в Fish - PullRequest
0 голосов
/ 19 апреля 2019

Как я могу использовать eval для выполнения команды в переменной, а также для фона в той же строке? Я пытаюсь следующее, но это не работает. Например, s xeyes Я ожидаю, что оболочка вернется.

function s --description "Start a command in the background and remove from jobs list"
    echo (count $argv)
    if test (count $argv) -ne 1 
        echo "illegal number of parameters"
        return 1
    end
    eval $argv[1] 2>&1 > /dev/null &
    disown
end

1 Ответ

0 голосов
/ 19 апреля 2019

Рыба не поддерживает фоновые функции.eval - это функция, поэтому фоновая обработка не поддерживается.

Вам нужно вставить & в код eval'd, поэтому

    eval $argv[1] 2>&1 > /dev/null &

может работа.

В качестве альтернативы, поскольку рыба 3.0 eval здесь больше не нужна, так что вы можете просто сделать

 $argv[1] 2>&1 >/dev/null &
...