我正在从以下单线程bash脚本中以分离模式打开一个新屏幕:
screen -d -m -S screenName
但屏幕的终端提示会显示bash-3.2$
,而不是常规提示atul.vaibhav@Mac$
。
当我直接从终端执行相同的命令时,我得到正常的预期提示。从bash脚本打开屏幕时,为什么会出现不同的提示?
我正在以这种方式执行我的bash脚本:
./myScript.sh
答案 0 :(得分:1)
试试这个:
bash -i ./myScript.sh
或
man bash
来自-l
:
-i
:将bash视为已作为登录shell调用。
git ls-files -v | grep '^[a-z]' | cut -c 3- | tr '\012' '\000' | xargs -0 git update-index --no-assume-unchanged
:如果存在-i选项,则shell是交互式的。
答案 1 :(得分:1)
由于man screen
的概要给出了:
screen [ -options ] [ cmd [ args ] ]
并且你想要一个登录Bash shell,你应该运行:
screen -d -m -S screenName -- bash -l
那就是说,当命令运行并且ps
声称在某个地方创建了bash -l
时,我无法看到窗口。