【问题标题】:Undefined vars passing from qsub to shell script从 qsub 传递到 shell 脚本的未定义变量
【发布时间】:2018-09-11 01:34:18
【问题描述】:

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

  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 脚本运行时是未定义的。我已经尝试了很多版本和对上述代码行的小幅编辑,但它总是出错......将不胜感激。

【问题讨论】:

    标签: bash matlab shell qsub


    【解决方案1】:

    在执行脚本之前,您需要 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 中添加一行以将变量设置为您的参数 ($1):

    iter=$1
    

    【讨论】:

    • 啊,这正是我需要的。非常感谢!!
    猜你喜欢
    • 2015-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-11
    • 2015-05-01
    • 2016-10-29
    相关资源
    最近更新 更多