1

Я пользователь Windows и использую Cygwin в качестве терминала. Для запуска notepad++ из терминала я добавил следующие строки в ~/.bash_profile:

npp () {
    /cygdrive/d/Notepad++/notepad++.exe $(cygpath -w -- "$@")
    }

это сработало, поэтому в следующий раз мне понадобился способ запустить его в фоновом режиме, чтобы я мог открыть экземпляр npp++, не останавливая поток своих терминалов. Это сработало:

npp foo &

Но я не хотел вводить этот амперсанд вручную, поэтому попытался добавить этот псевдоним в ~/.bash_profile:

alias npp="npp &"

И сейчас:

npp foo

Работает в фоновом режиме.

Проблема в том, что с командами gnu/linux вам нужно писать амперсанд после аргументов, если нет, то это не будет работать.

это работает:

ls directory &

Это не:

ls & directory

Итак, я хотел бы знать, что мне здесь не хватает, потому что:

npp foo

На самом деле работает в фоновом режиме, когда я установил

alias npp="npp &"

И это не так, когда я это комментирую.

1 ответ1

0

Следующая команда запускает в фоновом режиме ls передачи исполняемого файла directory качестве единственного аргумента, это то, что вы хотите сделать:

ls directory &

Тот, кто запускает ls в фоновом режиме без каких-либо аргументов, а затем (пытается) запустить directory как команду на переднем плане, это не то, что вы хотите сделать:

ls & directory

Использование alias не меняет этого поведения, если только у cygwin sh нет особой функции, о которой я не знаю, в чем я сильно сомневаюсь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .