내 .bashrc 파일에서 프롬프트 표시 방법을 구성합니다. 내 .bashrc는 .bash_profile에서 파생되었습니다. .bashrc 파일의 명령은 다음과 같습니다.
PS1='[\t] \u@\h is $PWD :: '
저는 tzselect를 사용하여 사용자의 시간대를 GMT+0으로 전환합니다. 내가 겪고 있는 문제는 date 명령을 사용하면 GMT 시간(만족함)을 얻지만 터미널 프롬프트는 여전히 시스템 시간(로그인 및 로그아웃 후에도)이므로 만족스럽지 않다는 것입니다. 와 함께.
나(사용자)가 지정한 시간 형식으로 터미널에 시간을 표시하려면 어떻게 해야 합니까?
답변1
시간대 설정 방법을 말씀하시지 않았지만, 자신의 사용자에 대한 시간대를 설정하는 것이므로 변수를 설정하여 설정해야 합니다 TZ
. Bash(최소 버전 4.1.5) TZ
에는 변경 사항을 설명할 때 몇 가지 특이한 점이 있습니다. 변경 사항은 셸이 외부 명령을 시작한 후에만 반영됩니다(외부 명령이어야 하며 하위 셸을 분기하는 것만으로는 충분하지 않거나 실행되지 않습니다). 내장 함수).
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
따라서 설정 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