2013-07-17 81 views
0

首先,我不知道我是否正確表達了我的標題,但是在這裏。使用shell腳本包裝器將命令輸入到一個新的shell中

我想從一個shell腳本在以下mannger輸入命令:

#!/bin/sh 
Dbm2 
table THE_TABLE 

然而,Dbm2運行命令後,當前shell獲取與Dbm2外殼更換,我不能再繼續使用shell包裝器腳本。

手動,這將做如下所示:

server_name% Dbm2 
Dbm: no table> table THE_TABLE 

這將從DBM2彈出THE_TABLE表。

如何使用shell包裝腳本通過將命令輸入到由shell腳本生成的新shell中來替換此手動過程?

回答

0

如果命令的順序是固定的(不從運行改變運行),您也許能夠使用:

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

ls # Just to demonstrate that the shell continues 

<<EOF符號是這裏-doc的。直到包含EOF的行都是命令Dbm2的輸入。

如果命令的內容需要變化,您可能可以將輸入傳送到Dbm2

在你的腳本中,如果你手動輸入命令到Dbm2然後退出,你的原始shell腳本應該繼續。 table THE_TABLE行將被視爲另一個shell命令,很可能會失敗。

+0

是的,這些命令將永遠是固定的。它對前幾個命令起作用,但是在「搜索」語句後停止。你有什麼想法嗎? – czchlong

+0

編輯您的帖子,以包括迄今爲止您的最佳嘗試,真正的cmds和任何出現的錯誤消息。包括你在爲什麼搜索。祝你好運。 – shellter