У меня есть sh/bash сценарий, который должен назвать пакетный файл с параметрами (параметры являются именами файлов и даны в формате DOS/Windows).
В основном я имею: script.sh
#!/bin/sh
declare var1=$1
declare var2=$2
dosomething var1 var2
...
<invoke batch script> var1 var2
...
dosomethingelse
Я использую GNU bash, version 3.1.0(3)-release (i686-pc-msys)
как оболочка, на msysgit
Проблема - это, когда я работаю из сценария: $COMSPEC /c batchfile param1 param2
любой я получаю "пустую подсказку", которая похожа на удар, но никакой результат команды не отображен на консоли, также cmd.exe
запустите, но не выполняйте сценарий.
Я попытался заключить параметрические усилители в кавычки для избиения как это:
$COMSPEC /c \"batchfile param1 param2\"
$COMSPEC /c \"\"batchfile param1 param2\"\"
$COMSPEC /c \"\"batchfile \"param1\" \"param2\"\"\"
Но я не получил результата.
Похоже, мне нужно было экранировать пробел в параметре cmd:
$COMSPEC \/c batch-file\ \"$var1\"\ \"$var2\"
или
$COMSPEC /c batch-file\ \"$var1\"\ \"$var2\"
Я не уверен, нужно ли экранировать / from / c, но он отлично работает в обоих направлениях.