为什么 Gnome 终端正常工作时虚拟终端在 eval 上抛出错误?

为什么 Gnome 终端正常工作时虚拟终端在 eval 上抛出错误?

我有时会在 Ubuntu (18.04.5) 笔记本电脑上使用虚拟终端,命令会返回错误。例如,我这样做:

  1. Ctrl+ Alt+F3
  2. 登录我的账户
bob@mylaptop:$ ls
file1 file2 file3
-bash: eval: line 2: premature end of file (EOF) when looking for matching "'"
-bash: eval: line 3: syntax error: premature end of file

抱歉,错误出在法语中,所以这是个人翻译

我知道代码中缺少引号eval,但我不知道如何修复它。其他命令返回相同的异常

命令仍然返回预期结果,并且我没有发现任何缺失的引号~/.bashrc。我的普通终端(Gnome Terminal)工作正常。

编辑 :

我发现这个文件调用了eval但没有做任何事情。这个文件被/etc/profile

$ cat 01-locale-fix.sh 
# Make sure the locale variables are set to valid values.
eval $(/usr/bin/locale-check C.UTF-8)
$ cat /etc/profile
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "${PS1-}" ]; then
  if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

if [ -d /etc/profile.d ]; then
  for i in /etc/profile.d/*.sh; do
    if [ -r $i ]; then
      . $i
    fi
  done
  unset i
fi

这是 $PS1

$ echo $PS1
\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[\033[01;32m\]Bob@Laptop\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$

跟踪并将set -x其与 opam 链接,这是使用过的东西。有一个很长的句子,其中'can'\''t'存在,我认为这是错误的。

$
++ _opam_env_hook
++ local previous_exit_status=0
+++ opam env --shell=bash --readonly
++ the long sentence with 'can'\''t' in it.

相关内容