在不同的shell中执行命令

时间:2011-05-02 11:56:57

标签: shell unix

在我工作的地方,我们有一个命令,我们称之为kuku,在调用时,将我转移到一个新的shell。即,我得到:

old_shell> kuku
kuku> exit
old_shell> ...

我需要在kuku shell中运行某个脚本,但我不想手动输入它和/或留在那里。即,我想使用kuku; <do stuff>; exit;之类的东西。但是,这不会起作用,因为一旦它进入kuku,它就无法进入其他命令。

有没有办法打开shell,提供一些命令,然后自动退出?

3 个答案:

答案 0 :(得分:4)

这在很大程度上取决于kuku的工作原理。如果kuku或多或少与其他shell兼容,则kuku -c "cmd1; cmd2"应该有效。

另一种选择是将kuku的命令放在文件script.kuku中,然后使用kuku < script.kuku运行。

最后,expect或其任何克隆可用于自动执行任何命令。

答案 1 :(得分:1)

kuku的文档应告诉您如何将命令传递到kuku shell以执行(例如,使用脚本文件,使用标准输入,尝试man kuku)。如果kuku不提供此类功能,您可能需要查看Expect

答案 2 :(得分:0)

假设你有一个名为mostlyharmless.sh的shell脚本,“做东西”,然后在ssh的例子中你会写ssh user@server 'bash -s' < mostlyharmless.sh。如果您对shell更具体,那么回答您的问题会更容易。所有这些都有点不同......