linux - 将输入从一个 shell 传递到另一个 shell,然后再次返回输入

标签 linux bash

因此,我正在寻找一种将输入从一个 shell 传递到另一个 shell 的方法。我正在开发一个程序,它使用默认 shell(在我的例子中是 bash)花费大量时间向操作系统发送命令以供其执行。我需要对 shell 所做的更改(本地目录中的更改、新别名等)才能“坚持”,我希望通过保持隐藏但持久的 bash 进程来执行我的程序来做到这一点.有解决这个问题的好方法吗?

我基本上是在编写一个在 bash 之上运行的程序,处理它理解的输入并将它不理解的输入传递给操作系统以执行。问题是,当我去更改事件目录时,它会在一次性 shell 中更改事件目录;它将打开一个 sh 进程,更改它的目录,然后在我有机会对其进行任何操作之前关闭该进程。我想保留一个 sh 或 bash 进程并以交互方式重用它来做我想做的事。也就是说,我不希望用户从桌面环境中看到该进程。

话虽这么说,但我还没有找到一种方法来让它发挥作用,而且我不确定从这里该何去何从。

想法,有人吗?我已经在使用 rlwrap,但这并没有解决这个问题,因为它从来都不是故意的。

最佳答案

你可以尝试这样的事情:


    #!/bin/bash
    shopt -s expand_aliases
    source ~/.bash_aliases
    set -o allexport
    youraliashere

这应该使别名和本地目录在您运行 shell 时保持不变,除非您希望以交互方式运行它,否则我可能误解了您的问题。

关于linux - 将输入从一个 shell 传递到另一个 shell,然后再次返回输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33602802/

相关文章:

Android shell EOF

无法在降级的 C 程序上运行 VLC

c - 找出函数调用的来源

bash - 保存返回码并在 bash 中返回

linux - 使用取消共享并仍在执行原始功能

linux - 两个目标文件中 md5sums 的差异

linux - "__kernel_vsyscall() at 0xb779e424"没有可用的源?

bash - 在 shell 和脚本中计算文件行数会产生不同的结果

linux - 在 bash 脚本中转义冒号

linux - 让用户验证密码