【问题标题】:call bash function with bsub lsf within bash script在 bash 脚本中使用 bsub lsf 调用 bash 函数
【发布时间】:2013-08-19 20:43:31
【问题描述】:

我有一个 bash 函数,我想要 bsub。当我尝试获取脚本时会递归调用它,但如果我不获取脚本,它似乎无法识别我的功能。如何在同一个脚本文件中的函数上正确调用 besub?

my_script(应该打印“12345”):

#! /bin/sh
function myFunct {
echo $1
}

bsub -q myQueue "source ./my_script; myFunct 12345"

【问题讨论】:

    标签: bash lsf


    【解决方案1】:

    a.bash 可能看起来像这样

    #! /bin/bash
    
    export input=$1
    function myFunct {
    echo "$input"
    }
    
    # This is if you want to call bsub outside the bash
    #  Use bsub -q Queue `./a.bash 12345`
    
    myFunct "$input"  
    
    
    # Put bsub inside and call the script
    # ./a.bash 12345
    
    bsub -q myQueue `myFunct "$input"`  
    

    【讨论】:

    • 谢谢。如果我想在 a.bash 中调用 bsub 会怎样?我想这样做是因为我的实际代码中有一个 forloop。
    • 你可以写成bsub -q Queue `myFunct "$input"`,而不是myFunct "$input"。然后执行为./a.bash 12345
    • ..thx 再次..但它似乎无法找到 myFunct。我通过将 echo "$input" 替换为 'mkdir myDir' 对其进行了测试,但没有创建任何内容。有什么想法吗?
    • Notice $input 是您必须提供给脚本的参数。还要检查您的脚本的权限。粘贴执行脚本时显示的错误。
    【解决方案2】:

    我已经可以使用它了

    bsub [...] bash -rcfile my_script.sh -i -c "myFunct 12345"
    

    【讨论】:

      猜你喜欢
      • 2019-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-29
      • 2021-05-12
      相关资源
      最近更新 更多