【问题标题】:Ampersand behavior in Bash on Mac OS X LionMac OS X Lion 上的 Bash 中的 & 符号行为
【发布时间】:2024-01-13 08:33:01
【问题描述】:

我之前在 ubuntu 10.04 LTS 上使用 bash 作为我的默认 shell 环境。最近切换到 Mac,似乎无法弄清楚为什么用 & 号调用的程序不启动。我认为这是我需要在.profile中设置的启动脚本修改或环境变量,无论是bash var还是与X11有关,但我找不到任何相关信息。

我可以从菜单栏中打开一个新的终端窗口或选项卡,然后说运行 emacs,但我习惯于输入:

emacs foo.txt & 

在它自己的窗口中启动 emacs。在 Mac OSX Lion 上,我返回了一个停止的 pid。

替代。我用 emacs 给出了示例,但后来我尝试输入:

xterm &

这会按预期生成一个新的 xterm 窗口。 OS X Lion 中加载的 emacs(默认)是否配置为不支持 X?

【问题讨论】:

  • & 允许您在后台运行程序。
  • 这并没有真正回答这个问题——我应该能够让一个进程在后台运行并且仍然让它在一个单独的 X 窗口中启动,对吧?
  • 这个问题更适合 Apple 或 Unix 和 Linux StackExchange 站点(即 apple.stackexchange.comunix.stackexchange.com)。

标签: macos bash osx-lion ampersand


【解决方案1】:

OS X Lion 没有安装 X,因此您无法在 X 模式下打开标准 emacs。你想启动一个后台进程,这失败了,因为 emacs 无法连接到任何 x 服务器并且 bash 打印消息,你的后台进程已停止。

【讨论】:

  • 不,这不是真的——我安装了 X11R6。它被称为 OS X——它是一种 X 环境。
  • 不,不是! OS X 中的 X 与 X11 系统无关。
  • 嗯 - 也许,但 X11 存在。我相信这个问题更多地与没有安装 X 支持的 emacs 有关。你相信这是真的吗?
  • 你启动x服务器了吗?您的环境是否设置了有效的 DISPLAY?
  • 是 DISPLAY 已设置。因此,我使用 brew 从 git 存储库安装了 emacs 23.3.b 并添加了 --with-x 选项,现在我可以使用 >emacs & 在它自己的窗口中启动 emacs
【解决方案2】:

OS X 不是一种 X 环境。它是基于 BSD 平台构建的 Apple 操作系统。

话虽如此,OS X 10.7 (Lion) 应该已随附 x11 可供安装。我会问你是升级到 Lion 还是全新安装。如果您进行了升级,您可能没有安装 x11 应用程序,它可以让您访问运行 x11 应用程序。

那将是我要检查的第一个地方。查看是否有您没有从 Lion 安装磁盘安装的附加功能。

【讨论】:

  • 全新安装(出厂默认)
  • OS X Lion 默认安装了没有 X 支持的 emacs 22.1.1。我能够通过安装更新​​版本的 emacs 来解决这个问题。我使用 brew 做到了这一点:>brew install emacs --with-x 并通过执行以下操作对其进行了测试:>/usr/local/bin/emacs & 在它自己的窗口中生成了 emacs,并在调用终端中将进程置于后台。跨度>
  • 缺乏 X 支持就可以了。奇怪的是他们会安装一个不支持 X 的版本。它是为 10.7 编译的吗?
最近更新 更多