【发布时间】:2014-12-04 15:38:34
【问题描述】:
传递给 bash 脚本的参数可以通过以下方式传递给 MATLAB 函数:
#!/bin/bash
matlab -nodesktop -nosplash -nodisplay -r "my_function('$1','$2')"
但是,如果我不知道先验的参数数量怎么办?所以我想做这样的事情:
#!/bin/bash
matlab -nodesktop -nosplash -nodisplay -r "my_function('$1',...,'$N')"
我不知道 N 等于先验。
我认为您可以使用包含'$1',...,'$N' 的 for 循环创建一个字符串,并将整个字符串传递给上述命令。但是没有更简洁的方法吗?
FIW,我不精通 bash。所以如果循环是唯一的方法,你能告诉我怎么做吗?
编辑
我设法为我的问题设计了一个解决方案:
#!/bin/bash
INPUT=""
for var in "$@"
do
INPUT=$INPUT"'"$var"',"
done
INPUT=${INPUT%?}
matlab -nodesktop -nosplash -nodisplay -r "my_function($INPUT)"
没有更简单/更短的方法吗?
【问题讨论】:
-
什么时候你会知道 N 的值?
-
从不。问题是我正在用 MATLAB 开发一个程序。 MATLAB 主函数的输入参数数量可能会随时间而变化。而且我不想修改每次决定添加另一个输入参数时启动我的 MATLAB 程序的 bash 脚本。
-
+1 表示正确的拼写 -
MATLAB而不是在 Stack Overflow 上广泛使用的matlab。抱歉,我没有任何有用的评论。
标签: bash matlab unix parameter-passing command-line-arguments