是否可以使用更好的单引号字符来启动 Bash?

是否可以使用更好的单引号字符来启动 Bash?

这个答案,用户 pizdelect 解释了如何启动一个新的 Bash 子 shell,该子 shell 使用U+2018U+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-terminalsshd

相关内容