首先,我不知道我是否正确地写了我的头衔,但现在就这样了。
我正在尝试从以下管理器中的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包装器脚本替换此手动过程?
答案 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命令,很可能会失败。