从 qsub 传递到 shell 脚本的未定义变量

Undefined vars passing from qsub to shell script

我在终端中 运行 有一个这样的脚本:

  for iter in 1
  do
    echo FullFilePath.sh $iter | qsub -V -e ~/pbs/ -o ~/pbs/
  done

在 shell 文件中,它看起来像这样:

matlab -nosplash -singleCompThread -nojvm -r "a=${iter}"

它 运行 很好,直到它在执行上面的 matlab 代码时出错,错误是我错误地使用了“=”运算符:"a="。基本上 $iter 在 matlab 脚本 运行 时是未定义的。我已经尝试了很多版本并对上面的代码行进行了小的修改,但它总是出错......将不胜感激任何帮助。

在执行脚本之前,您需要 export 您的 iter 变量。

export iter

因此您的脚本可能如下所示:

for iter in {1..5}
do
    export iter
    sh FullFilePath.sh $iter | qsub -V -e ~/pbs/ -o ~/pbs/
done

或者您可以在 FullFilePath.sh 中添加一行以将变量设置为您的参数 (</code>):</p> <pre><code>iter=