我认为这与创建新子进程的父进程有关,并且没有tty.谁能解释引擎盖下的细节?即bash,流程创建等相关工作模型?
这可能是一个非常广泛的主题,因此对帖子的指示也非常感激.我用谷歌搜索了一段时间,所有结果都是关于非常具体的情况,没有一个是关于场景背后的故事.为了提供更多上下文,下面是shell脚本,导致'bash:此shell中没有作业控件'.
#! /bin/bash
while [ 1 ]; do
st=$(netstat -an |grep 7070 |grep LISTEN -o | uniq)
if [ -z $st ]; then
echo "need to start proxy @$(date)"
bash -i -c "ssh -D 7070 -N user@my-ssh.example.com > /dev/null"
else
echo "proxy OK @$(date)"
fi
sleep 3
done
Run Code Online (Sandbox Code Playgroud)
这一行:
bash -i -c "ssh -D 7070 -N user@my-ssh.example.com > /dev/null"
是"bash:这个shell中没有工作控制"来自哪里.
在我的shell环境中,我有别名和自定义函数.当我在emacs的实例(我总是使用emacs -nw)并执行shell命令(Mx!)时,我无法使用它们.这是有道理的,因为我想它启动它自己的子shell来做这些..但有没有办法(也许在我的.emacs中)让这个工作?也许即使它在执行任何shell命令之前默认采购环境?