我在bash中使用pbs交互式作业,使用qsub -I
启动,我想在启动后运行一些命令。 运行此命令后,我想继续像往常一样使用交互式预留。
我不确定如何做到这一点,因为像打开交互式ssh提示符一样,远程terminal完成后发出的命令,即qsub -I; hello
qsub -I; hello
。
编辑:澄清,在上面的例子( qsub -I; hello
),我想在qsub保留,而不是在我预订的机器上运行hello
。
我知道我可以为qsub指定一个作业脚本,但从手册页我不认为它做我想要的:
…这个工作是一个互动的工作。 脚本将被处理为指令,但不会被包含在工作中。
试试这个:运行qsub -I命中CTRL-Z让进程进入hibernate状态在hello完成后运行hello你可以使用fg返回到qsub
你也可以这样做
qsub -I &; echo "hello world"; fg
如果我明白你的澄清,你可能想要在一个子shell中运行,即
一个子shell可以用来为一个命令组build立一个“专用环境”。
COMMAND1 COMMAND2 COMMAND3 ( IFS=: PATH=/bin unset TERMINFO set -C shift 5 COMMAND4 COMMAND5 exit 3 # Only exits the subshell! ) # The parent shell has not been affected, and the environment is preserved. COMMAND6 COMMAND7
取自: http : //tldp.org/LDP/abs/html/subshells.html