我正在编写一个脚本,该脚本需要打开一个新的 bash 实例,输入一些命令,然后让我继续使用该 bash 实例。我该怎么做?目前我有这个:
bash << EOF
do_something()
EOF
我如何让新的 bash 实例调用 do_something() 然后让我输入其他命令?
稍后编辑:
我实际上使用的是另一个公司内部命令,我无法控制它,它在后台执行一些操作,然后给我一个预配置的 bash。这就是我给出发送命令的示例的原因。因为它可以为任何解释器配置。
答案1
使用子 shell 并通过管道传输到 bash。'script' 也可能有帮助:
user@name:~$ (printf '%s\n' 'echo 1' 'echo 2'; cat) | bash
1
2
echo 3
3
user@name:~$ # DON'T do this: (printf '%s\n' 'echo 1' 'echo 2'; cat) | bash -i
user@name:~$ (printf '%s\n' 'echo 1' 'echo 2'; cat) | script -c 'bash -i' /dev/null
++++Skript gestartet, die Datei ist /dev/null
++++user@name:~$ 1
++++user@name:~$ 2
++++user@name:~$ echo 3
++++3
++++user@name:~$ Skript wurde beendet, die Datei ist /dev/null
user@name:~$
备注:加号根本没有出现,我添加它们是为了澄清“脚本”部分。
相反,script -c 'bash -i' /dev/null
您可以使用script /dev/null
命令默认script
调用。bash -i