在这个答案,用户 pizdelect 解释了如何启动一个新的 Bash 子 shell,该子 shell 使用U+2018
和U+2019
作为单引号字符,但请注意,您无法从内部设置它,bash.
因此似乎没有任何东西~/.bashrc
可以~/.bashprofile
设置它。然而总是手动启动一个新的子 shell 是一个巨大的痛苦。
我怎样才能让 Bash 一直这样启动呢?
答案1
在某些(所有?)基于 Linux 的系统上,您可以将定义添加到/etc/default/locale
.在我的 Debian 系统上,该文件现在包含以下内容:
# File generated by update-locale
LANG=en_GB.UTF-8
# Fancy quotes, https://unix.stackexchange.com/a/584542/100397
LANGUAGE=en@quot:en_GB:en
当我登录时,我的环境中有这些
env | grep LANG
LANGUAGE=en@quot:en_GB:en
LANG=en_GB.UTF-8
并且命令按照您想要的方式工作
alias foo=bar
type foo
foo is aliased to ‘bar’
答案2
您必须将LANGUAGE
变量添加到正在调用的任何进程中bash
。这可能会根据您访问 shell 的方式而改变。首先找到 shell 的父进程:ps -o ppid= -p $$
,然后获取该进程的名称:ps -ef <pid from last command>
。这是您必须注入环境变量的程序。它可以是一个getty
终端仿真器,例如gnome-terminal
或sshd
。