我正在尝试运行一个Shell脚本,该脚本从Windows的命令行中获取输入参数列表。大多数(全部?)有关在Windows上运行shell脚本的问题简单地指向用户的cygwin / git的/蟒蛇工具。但是,出于我的目的,我需要找到一种方法专门从命令行运行Shell脚本。原因是我想通过Matlab运行此Shell脚本。 Matlab具有系统()命令,其允许运行在命令行命令。
我已经接近解决方案,但是我无法正确读取输入参数。这是我对命令行的调用:
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
类似于该文章中的OP,我无法使我的脚本接受输入参数。我在shell脚本中有一行,
echo "$#"
我用来确定参数是否正确传递,到目前为止我还没有运气。我还应该提到的是,我现在通过命令行进行测试,而不是通过Matlab调用system()(只是为了运行更直接的测试)。有什么想法可以解决这个问题吗?
答案 0 :(得分:1)
Oy vey。解决方案很简单,只要将双引号移到输入参数列表之后即可。
C:\Users\qualiaMachine> C:\cygwin64\bin\bash --login -c "W:/code/bashScripts/pre/zipAllSingleChOutput.sh 1"