Bash

如何使 tty 在 .bash_profile 中工作

  • September 23, 2018

~/.bash_profile為了使 GPG 正常工作, 我有以下內容:

export GPG_TTY="`tty`"

但是當我打開一個新的 shell 時,我得到以下資訊:

$ echo $GPG_TTY
not a tty

但是,如果我再source ~/.bash_profile一次,它就會起作用並包含類似/dev/pts/2.

有沒有辦法在打開外殼時自動完成這項工作?是否最初在分配 tty 之前完成了對該文件的採購,如果是這樣,以後有沒有辦法這樣做?

GPG_TTY環境變數應保存目前互動式 shell 的 TTY 設備的路徑。~/.bashrc因此,將它放在一個文件中而不是文件中是最有意義的~/.bash_profile,因為登錄 shell(它解析配置文件)實際上在某些情況下可能不是互動式的。

因此,刪除GPG_TTYfrom的設置~/.bash_profile並將其添加為

export GPG_TTY="$( tty )"

在你的~/.bashrc文件中。

通常,將互動式 shell 的會話特定設置添加到文件~/.bashrc中,而不是會話特定的設置。~/.bash_profile

引用自:https://unix.stackexchange.com/questions/470860