Это скорее раздражение, чем проблема, но я бы очень хотел понять семантику здесь.
Все, что я хочу сделать, это запустить произвольную команду во временном сеансе командной строки, который сам запускается в сеансе bash.
Мой успех равен 50/50, так как некоторая команда работает так, как ожидалось, в то время как другие не так много.
Я думаю, что проблема может лежать вокруг аргументов, которые не выравниваются должным образом (т.е. отсутствующие или объединенные аргументы)
Я попытаюсь объяснить, что я имею в виду, странно, с помощью ряда команд и ответов. (Я пытаюсь, чтобы тестовое слово было напечатано на экране.)
Я запускаю их под GNU bash, версия 3.1.0 (1) -release (i686-pc-msys) В комплекте с Git -1.8.4:
Первая попытка:
$ cmd /c echo test
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
c:\>
Вторая попытка:
$ cmd '/c echo test'
test"
Третья попытка:
$ cmd "/c echo test"
test"
Четвертая попытка:
$ cmd /c\ echo\ test
test"
Пятая попытка:
$ cmd "/c echo" test
'echo" test' is not recognized as an internal or external command,
operable program or batch file.
Я бы очень признателен за любые указатели или понимание поведения, описанного выше, поскольку это неинтересно для меня и сводит меня с ума!
Edit: Существует еще один вопрос, который похож на этот, но на самом деле это не так, главным образом потому, что он запускает пакетные файлы через CMD/C, который не требует никаких аргументов.
На самом деле он не отвечает на мой вопрос о том, как правильно предоставлять аргументы приложениям командной строки Windows, и хотя примеры относятся к CMD/C, ответ здесь может быть применен ко многим другим приложениям в командной строке Windows.