【发布时间】: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