【问题标题】:print usage on shell when running qsub without environment variable在没有环境变量的情况下运行 qsub 时在 shell 上打印使用情况
【发布时间】:2019-05-20 10:07:35
【问题描述】:

在没有任何环境变量的情况下使用 qsub 提交时,有没有办法在终端上打印脚本的使用情况?

例如,我有一个脚本“script.sh”,它应该包含 4 个变量“var1、var2、var3 和 var4”。所以脚本应该提交为qsub -v var1=a,var2=b... script.sh。如果用户尝试在没有任何变量的情况下提交作业,我想打印 var1、var2.. 等所指的内容。

我知道我可以在脚本中设置检查点并将其打印到文件中,但我想在尝试提交脚本时在终端本身打印使用情况。

如果我不清楚,请告诉我。

谢谢

【问题讨论】:

  • 要么你qsub(脚本?)必须验证它的输入,或者你需要创建一个shell脚本包装器来为你完成这项工作。我使用类似 case $# in 4) qsub $1 $2 $3 $4 ;; * ) echo "usage msg" >&2 ; exit 1 ;; esac 的东西。当然,chmod +x myWrapperScript.sh,在执行它之前。祝你好运。
  • 感谢您的想法。包装脚本有意义,然后我可以创建一个别名,例如alias qsub="bash ~/myWrapperScript.sh"。会试一试。 :)
  • 我个人更喜欢脚本文件顶部的“she-bang”行,#!/bin/bash(或根据需要更改以调用正确的 shell)。然后您可以在别名中删除对bash 的引用。否则你走在正确的轨道上。祝你好运。
  • 所以我实际上做的是,在 she-bang 行之后,我检查了主机名以查看它是从头节点运行的。然后打印 qsub 脚本的用法,我先用 bash 运行它。

标签: shell qsub


【解决方案1】:

所以我实际上所做的是,在 she-bang 行之后,我检查了主机名以查看它是从头节点运行的。然后打印 qsub 脚本的用法,我先用 bash 运行它。

if [ $HOSTNAME == "headnode" ]
then
    echo -e "Usage: ..."
    exit
fi

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    • 2016-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-21
    • 2011-02-25
    相关资源
    最近更新 更多