我在 bash 中使用 pbs 交互式作业,使用 启动qsub -I
,我想在启动后运行一些命令。运行此命令后,我想继续照常使用交互式预留。
我不确定如何实现这一点,因为与打开交互式 ssh 提示符一样,远程终端完成后发出的命令,即qsub -I; hello
。
编辑:为了澄清起见,在上面的例子(qsub -I; hello
)中,我想运行hello
里面qsub 预订,而不是我进行预订的机器上。
我知道我可以为 qsub 指定一个作业脚本,但是从手册页我认为它没有达到我想要的效果:
...该作业是交互式作业。脚本将被处理以获取指令,但不会包含在作业中。
答案1
试试这个:运行 qsub -I 按 CTRL-Z 使进程进入睡眠状态运行 hello 当 hello 完成后,你可以使用 fg 返回 qsub
你可以做同样的事情
qsub -I &; echo "hello world"; fg
如果我理解你的解释,你可能想在子 shell 中运行它,即
子 shell 可用于为命令组设置“专用环境”。
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