使用shell脚本包装器将命令输入到新shell中

时间:2013-07-17 18:17:47

标签: shell dbm

首先,我不知道我是否正确地写了我的头衔,但现在就这样了。

我正在尝试从以下管理器中的shell脚本输入命令:

#!/bin/sh
Dbm2
table THE_TABLE

但是,在运行命令Dbm2之后,当前shell将被Dbm2 shell替换,我无法继续使用shell包装器脚本。

手动,这将按以下方式完成:

server_name% Dbm2
Dbm: no table> table THE_TABLE

这将显示Dbm2的THE_TABLE表。

如何通过在shell脚本生成的新shell中输入命令来使用shell包装器脚本替换此手动过程?

1 个答案:

答案 0 :(得分:0)

如果命令序列是固定的(从一次运行到另一次运行没有变化),你可以使用:

#!/bin/sh
Dbm2 <<EOF
table THE_TABLE
...other commands...
EOF

ls  # Just to demonstrate that the shell continues

<<EOF表示法是here-doc。直到包含EOF的行的行是命令Dbm2的输入。

如果命令的内容需要变化,您可以将输入传递给Dbm2

在您的脚本中,如果手动输入命令Dbm2然后退出,则原始shell脚本应继续。 <{1}}行将被视为另一个shell命令,很可能会失败。