从bash脚本打开时为什么我会获得不同的屏幕会话

时间:2016-01-01 04:45:34

标签: macos bash shell

我正在从以下单线程bash脚本中以分离模式打开一个新屏幕:

screen -d -m -S screenName

但屏幕的终端提示会显示bash-3.2$,而不是常规提示atul.vaibhav@Mac$

当我直接从终端执行相同的命令时,我得到正常的预期提示。从bash脚本打开屏幕时,为什么会出现不同的提示?

我正在以这种方式执行我的bash脚本:

./myScript.sh

2 个答案:

答案 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时,我无法看到窗口。