Dan*_*Cat 4 bash time timezone
在我的 .bashrc 文件中,我配置了我希望如何显示提示。我的 .bashrc 来自 .bash_profile。.bashrc 文件中的命令是:
PS1='[\t] \u@\h is $PWD :: '
Run Code Online (Sandbox Code Playgroud)
我使用 tzselect 将用户(对我而言)时区切换到 GMT+0。我遇到的问题是,使用 date 命令我得到了 GMT 时间(我很满意)但终端提示仍在系统时间上(即使在登录和注销后),我对此不满意.
如何让终端以我(用户)指定的时间格式显示时间?
您没有说明如何设置时区,但是由于您为自己的用户设置了时区,因此必须通过设置TZ
变量来实现。Bash(至少版本 4.1.5)在考虑TZ
更改时有一些怪癖:更改仅在 shell 启动外部命令(它必须是外部命令,分叉子shell 不是足够了,也没有执行内置函数)。
bash-4.1$ PS1='\t '
12:31:05 export TZ=Asia/Tokyo
12:31:12
12:31:13 echo foo
foo
12:31:14 /bin/echo foo
foo
19:31:17
Run Code Online (Sandbox Code Playgroud)
因此,如果您TZ
在您的设置中设置.bash_profile
并且您没有碰巧启动外部命令,您仍然会在第一个提示处看到旧时区的时间。
export TZ=GMT
# Refresh bash's idea of $TZ for prompt display purposes.
# As of bash 4.1, this requires running an external command!
if [[ $- = *i* ]]; then command true; fi
Run Code Online (Sandbox Code Playgroud)