8

我有一个 shell 脚本foo.sh,它是一个包含内容的qsub作业:

    #!/bin/bash -l
    #$ -S /bin/bash
    #$ -N $2
    echo $1

我想传递两个论点。如果我调用 qsub foo.sh ab,第一个参数会被正确处理并作为“a”回显到命令行。但是,我不知道如何在第二种情况下传递以“#$ -N”开头的参数。在这种情况下,$2 不会被评估为 'b',但实际上设置了 '$2'。帮助将不胜感激。

4

2 回答 2

4

对我来说很有趣。

我不知道 -N 命令是什么意思,但是

#!/bin/bash -l
#$ -S /bin/bash
#$ -N $2
echo $1
echo $2

当被sh foo.sh a b及时回声呼唤时

a
b
于 2012-01-08T23:50:22.170 回答
2

不,你不能。行首的 # 使得 $2 不会被脚本的参数替换。做你想做的事情的方法是

qsub foo.sh -N <name>
于 2012-03-13T22:29:53.563 回答