2010-08-20 3 views
12

Я создал несколько псевдонимов bash в Git Bash для Windows, чтобы запустить исполняемые файлы из оболочки bash.Git Bash: запуск приложения через псевдоним без зависания Bash (WIndows)

Проблема, с которой я сталкиваюсь, заключается в том, что, похоже, bash ждет кода выхода, прежде чем он снова начнет отвечать на ввод, так как как только я закрою приложение, которое он запустил, он снова начинает принимать команды.

Есть ли переключатель или что-то, что я могу включить в псевдоним, чтобы bash не дождался кода выхода?

Я ищу что-то вроде этого ...

alias np=notepad.exe --exit 
+1

Вы пытались запустить его с помощью &? поэтому вместо этого > блокнот.exe > notepad.exe & – George

ответ

7

Я подтверждаю, что George упоминает в комментариях:

Запуск свой псевдоним с «&» позволяет вам идти, не дожидаясь возвращения кода.

alt text

С:

alias npp='notepad.exe&' 

вам даже не придется вводить в '&'.


Но для включения параметров, я бы рекомендовал скрипт (вместо псевдонима) разместить в любом месте в пределах вашего пути, в файле под названием «npp»:

/c/WINDOWS/system32/notepad.exe $1 & 

позволит вы можете открыть любой файл с помощью «npp anyFile» (не требуется «&»), не дожидаясь возврата кода.

Сценарий как:

for file in $* 
do 
    /c/WINDOWS/system32/notepad.exe $file & 
done 

бы запустить несколько редакторов, один для каждого файла в параметрах:

npp anyFile1 anyFile2 anyFile3 

позволят вам

+0

Да, я получаю это, но что, если я хочу выполнить блокнот открыть файл, а также не дожидаться возврата кода? – ctorx

+0

@Matthew: получил. См. Мой обновленный ответ. – VonC

4

Выполните команду амперсанд (&), чтобы запустить его в фоновом режиме.

+0

Можно ли включить & в псевдоним? Например, я хочу сделать это .... alias np = 'notepad.exe $ * &', где $ * - это параметры, указанные при использовании псевдонима ... (имя файла для открытия). – ctorx

+0

Если вы отредактируете файл конфигурации git ('.git/config') напрямую (в разделе' alias'), вы, вероятно, можете добавить '&' там. (Вы не можете добавить его из командной строки, потому что он будет интерпретироваться как часть команды, чтобы установить псевдоним, а не часть самого псевдонима.) – Amber

2

Я объединил решение VonC и это https://stackoverflow.com/a/7131683/1020871 к получить псевдоним, который запускает исполняемый файл и передает параметры без блокировки git bash. Добавьте следующий код в .bashrc:

npp() { 
    notepad++.exe $* & 
} 

startGitk() { 
    gitk $* & 
} 
alias gitk=startGitk 

Теперь я могу открыть несколько файлов Notepad ++ как npp .gitignore build.gradle или gitk с пользовательскими аргументами, как gitk test -- .gitignore.

У меня был аналогичный псевдоним для npp как для gitk, но нашел, что я мог бы вызвать функцию напрямую. Я также могу вызвать startGitk, но это не сработало, когда я назвал его gitk.

Смежные вопросы