在我工作的地方,我们有一个命令,我们称之为kuku
,在调用时,将我转移到一个新的shell。即,我得到:
old_shell> kuku
kuku> exit
old_shell> ...
我需要在kuku
shell中运行某个脚本,但我不想手动输入它和/或留在那里。即,我想使用kuku; <do stuff>; exit;
之类的东西。但是,这不会起作用,因为一旦它进入kuku
,它就无法进入其他命令。
有没有办法打开shell,提供一些命令,然后自动退出?
答案 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更具体,那么回答您的问题会更容易。所有这些都有点不同......