在qsub中,我们可以像这样传递环境变量:
info="This is some info"
qsub -v INFO=$info script.pbs
字符串
然而,当$info包含逗号时,这就成了问题。
info="This is some info, and here is some more!"
qsub -v INFO=$info script.pbs
型
这将触发如下错误:
错误:-v
:变量',这里还有一些!'未在环境变量中设置。
我也尝试过封装info
,INFO="$info"
导致同样的问题。
如何正确传递$info
,即使它包含一个或多个逗号?同样的问题也适用于换行符。
也许一个有趣的观察是,当我echo -e $info
时,我得到了我期望的输出。该错误是在qsub
命令中触发的。
1条答案
按热度按时间2skhul331#
我刚刚在qsub man-page上发现,没有记录的方法可以让选项 *-v variable[=value],... * 安全地将逗号放入 value 中。也许有一种没有文档记载的方法,你可以通过研究 qsub 的源代码来找到。
但是,有一个解决方案:如果我们只指定
-v variable
而不提供值,它会将 variable 解释为当前环境中的环境变量,并使用其值。在您的情况下,这意味着您可以执行字符串