У оболочки Bourne и оболочки C нет массивов, IIRC.
В дополнение к тому, что говорили другие, в Bash вы можете получить количество элементов в массиве следующим образом:
elements=${#arrayname[@]}
и выполните операции в стиле среза:
arrayname=(apple banana cherry)
echo ${arrayname[@]:1} # yields "banana cherry"
echo ${arrayname[@]: -1} # yields "cherry"
echo ${arrayname[${#arrayname[@]}-1]} # yields "cherry"
echo ${arrayname[@]:0:2} # yields "apple banana"
echo ${arrayname[@]:1:1} # yields "banana"
Я согласен со Стейном, что вам следует использовать встроенные средства MSI / WiX для установки службы, а именно <ServiceInstall>
и <ServiceConfig>
элементов.
Как говорится, это ошибки вашего текущего решения:
[SystemFolder]
и cmd.exe
. Возможное решение:
<CustomAction Id="InstallService" Directory="elasticsearch" Execute="deferred" Impersonate="no" ExeCommand='"[elasticsearch]bin\elasticsearch-service.bat" install' Return="check" />
Вы можете вызвать пакетный файл напрямую, не передавая его в cmd.exe
.