Как запустить скрипт оболочки из командной строки с помощью cygwin для Windows? - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь запустить сценарий оболочки, который принимает список входных аргументов из командной строки в Windows.Большинство (все?) Вопросов, связанных с выполнением сценариев оболочки в Windows, просто указывают пользователю на инструменты cygwin / git / anaconda.Однако для моих целей мне нужно найти способ запуска сценария оболочки специально из командной строки.Причина в том, что я хотел бы запустить этот скрипт через Matlab.Matlab имеет команду system (), которая позволяет запускать команды из командной строки.

Я близок к решению, но у меня возникают проблемы с правильным чтением входных аргументов.Вот мой вызов командной строки:

C:\Users\qualiaMachine> C:\cygwin64\bin\bash --login -c  "W:/code/bashScripts/pre/zipAllSingleChOutput.sh" 1

Формат этого вызова соответствует инструкциям, которые я нашел здесь, с «1» начинаются единственные аргументы: https://www.mathworks.com/matlabcentral/answers/221901-can-i-call-a-bash-shell-script-using-cygwin-through-matlab

АналогичноОП из этого поста, я не смог заставить мой скрипт принимать входные аргументы.У меня есть строка в скрипте оболочки,

echo "$#" 

, которую я использую, чтобы определить, правильно ли передаются аргументы, и мне пока не повезло.Я также должен упомянуть, что я тестирую это через командную строку, а не вызываю system () через Matlab в данный момент (просто для запуска более прямого теста).Есть идеи, как решить эту проблему?

1 Ответ

0 голосов
/ 31 января 2019

ой вей.Решение было столь же простым, как перемещение двойной кавычки, чтобы следовать за списком входных аргументов.

C:\Users\qualiaMachine> C:\cygwin64\bin\bash --login -c  "W:/code/bashScripts/pre/zipAllSingleChOutput.sh 1"
...