【问题标题】:New tab in Terminal.app does not open in same directory/bash fails (Mountain Lion)Terminal.app 中的新选项卡未在同一目录中打开/bash 失败(Mountain Lion)
【发布时间】:2013-06-15 09:15:32
【问题描述】:

基本问题:当我在终端中打开一个新选项卡时,bash 失败并显示以下错误输出:

bash: -c: line 0: syntax error near unexpected token `('
bash: -c: line 0: `exec -la (null) (null) -1'

[Process completed]

在首选项中,我设置了新选项卡以使用相同的设置/目录打开。

我一直在学习自定义 bash 提示区域,实际上是为了解决这个问题,但无济于事。在我意识到我应该由用户这样做之前,我弄乱了 /etc/bashrc,我已经将该文件重置为如下所示:

# System-wide .bashrc file for interactive bash(1) shells.
if [ -z "$PS1" ]; then
  return
fi

PS1='\h:\W \u\$ '
# Make bash check its window size after a process completes
shopt -s checkwinsize
# Tell the terminal about the working directory at each prompt.
if [ "$TERM_PROGRAM" == "Apple_Terminal" ] && [ -z "$INSIDE_EMACS" ]; then
   update_terminal_cwd() {
       # Identify the directory using a "file:" scheme URL,
       # including the host name to disambiguate local vs.
       # remote connections. Percent-escape spaces.
       local SEARCH=' '
       local REPLACE='%20'
       local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
       printf '\e]7;%s\a' "$PWD_URL"
   }
   PROMPT_COMMAND="update_terminal_cwd; $PROMPT_COMMAND"
fi

最后,我的 ~/.bash_profile 看起来像这样:

source /etc/bashrc

export PATH=~/Code:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin.

export CLASSPATH=~/Programs/:~/Programs/bailey.jar:~/Programs/labs/:.
export PYTHONPATH=~/dm/:~/Code/Git/.:.

如果有人可以给我任何建议,那就太好了。

【问题讨论】:

  • 看起来update_terminal_cwd() 正在引发错误。你试图调用的这个函数是什么?
  • @thecoloryes 你知道转义序列\e]7; 是做什么的吗?对我来说,它会清除控制台上的所有输入/输出,直到 shell 收到 Enter 键。您是否要为printf 的输出着色?
  • @AtlasWegman 我不知道该函数的作用。 bashrc 文件与我更改任何内容之前完全一样,因此定义该方法的唯一方法是由 OSX 本身,或者通过安装一些决定它有理由编辑该文件的东西。
  • @Samveen 我不确定它的用途。同样,这是我开始编辑颜色之前文件的样子——我的 .bash_profile 中有一行设置终端以使其看起来像我想要的那样:export PS1="\[\e]2;\w\a\e[33;40m\]\W>\[\e[0m\] " 将完整的密码打印到标题的标题终端窗口和我当前所在目录的名称,后跟 >,黄色。
  • @thecoloryes 我想说解决问题的最佳方法是逐行注释/取消注释。由于所有系统相关信息(路径、脚本等),我(或其他任何人)很难测试

标签: bash terminal osx-mountain-lion


【解决方案1】:

我也遇到了这个问题,发现我不小心更改了终端首选项的“启动”选项卡中的设置。设置为“Shell 打开方式:命令(完整路径):。”

我把它改回“Shell open with: Default login shell”,问题就解决了。

【讨论】:

  • 非常感谢!这正是问题所在。
【解决方案2】:

只是对(已经非常有用的)线程的更新:我正在运行终端 2.5,现在有一个名为“新窗口打开方式:”的设置;

“相同的工作目录”

应该选择有利于

“默认工作目录”。

【讨论】:

    猜你喜欢
    • 2012-08-24
    • 2020-12-19
    • 2017-01-05
    • 1970-01-01
    • 2019-07-26
    • 2012-07-27
    • 1970-01-01
    • 2018-10-30
    • 2014-02-02
    相关资源
    最近更新 更多