Передача окон на основе косой черты (/) для программы из bash script

Я пытаюсь запустить следующее из bash script. (bash установлен через msysgit)

taskkill /IM ssh-agent.exe

Выход, который я получаю на экране от taskkill, это:

ERROR: Invalid argument/option - 'C:/Program Files/Git/IM'.
Type "TASKKILL /?" for usage.

Выполняемый выполняется, но /IM расширяется независимо от того, что я пытаюсь сделать, чтобы избежать его...


Я пробовал использовать \/IM, но затем он отправляет \/IM без экранирования косой черты. Я пробовал несколько разных способов запускать его через eval, cmd/c start и т.д.... но все они кажутся иметь проблемы. Я также пробовал set -o noglob, который также не работал. не было $'\057/'IM или подобных попыток...

Ответ 1

Поскольку мой комментарий действительно предоставил ответ, я отправлю его.

Как избежать перехода косой черты в другую косую черту, например //. Он работает для меня, когда я выполняю эту команду, где я избежал параметра /r: start C:/folder/beep 2000 250 100 //r 3

Источник: http://oldwiki.mingw.org/index.php/switches%20with%20forward%20slashes

Минималистский GNU для Windows

Передача переключателей с косой чертой под MSYS

В MSYS аргумент командной строки "/c" интерпретируется как C: диск, чтобы передать любые аргументы, начинающиеся с косой черты, которые вам нужны для использования двух косых черт. Например, чтобы использовать эту команду в MSYS:

cmd /c echo foo

Использование:

cmd //c echo foo

Если вам нужен стиль windows для пути в оболочке script, вы может сделать

x=$(cd /unix/path && cmd //c cd)

Теперь x var содержит эквивалентный путь к /unix/path

Ответ 2

После нескольких поисков различных поисковых запросов, таких как "disable bash расширение файла" и т.п., я нашел его, выполнив поиск для "bash" "windows" taskkill исполняемого файла, который я пытался запустить, я наткнулся на этот ответ, который, наконец, работал у меня.

cmd " /c taskkill /F /IM ssh-agent.exe"