터미널 창을 넣고 export GPG_TTY=$(tty)
다시 시작하고 실행하면.zshrc
echo $GPG_TTY
그것은 말한다 not a tty
.
내가 출처를 밝힐 .zshrc
때
source ~/.zshrc && echo $GPG_TTY
올바르게 보고됩니다 /dev/pts/1
.
내 문서에 tty가 대화형 쉘 초기화에 사용된다고 나와 있는데 .zshrc
왜 tty를 찾을 수 없습니까 ?.zshrc
내 .zshrc
콘텐츠는 다음과 같습니다.
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
export ZSH="/home/ashar/.oh-my-zsh"
export EDITOR=nvim
export GPG_TTY=$(tty)
ZSH_THEME="powerlevel10k/powerlevel10k"
plugins=(git zsh-autosuggestions)
source $ZSH/oh-my-zsh.sh
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
답변1
tty
이 명령을 사용하려면 stdin이 터미널에 연결되어 있어야 합니다. 그것을 사용할 때전력 레벨 10k/dev/null
, stdin은 다음에서 리디렉션됩니다.즉시 알림Zsh가 완전히 초기화될 때까지 활성화됩니다. 이에 대한 자세한 내용은Powerlevel10k FAQ.
이 문제를 해결하려면 인스턴트 프롬프트를 활성화하기 전에 실행되도록 export GPG_TTY=$(tty)
맨 위로 이동하거나 (더 좋습니다!) 를 사용할 수 있습니다 . 후자 버전은 어디에서나 작동하며 1000배 이상 빠릅니다. Zsh가 초기화 프로세스 초기에 설정하는 특수 매개변수입니다. 표준 입력이 리디렉션되더라도 터미널에 대한 액세스를 제공합니다.~/.zshrc
export GPG_TTY=$TTY
TTY
답변2
이렇게 해결해서 다른 사람들과 공유했습니다.
export GPG_TTY=$(tty)
위쪽으로 옮겼어요 . 구체적으로는 위의 p10k 인스턴트 프롬프트 초기화입니다. 잘 모르겠지만 스크립트를 실행한 후 tty를 내보내면 tty를 사용할 수 없습니다. 저는 이 분야의 전문가는 아니지만 제 문제가 해결되었으니 여러분도 문제가 해결되기를 바랍니다.