传入.sh脚本的参数

use*_*731 8 shell options sh parameter-passing qsub

我有一个shell脚本foo.sh,它是一个qsub作业,内容如下:

    #!/bin/bash -l
    #$ -S /bin/bash
    #$ -N $2
    echo $1
Run Code Online (Sandbox Code Playgroud)

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

dbe*_*eer 2

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

qsub foo.sh -N <name>
Run Code Online (Sandbox Code Playgroud)