fg_bold 변수가 zsh 스크립트에 정의되지 않은 것 같습니다. 무슨 일이 일어나고 있나요? (맙소사)

fg_bold 변수가 zsh 스크립트에 정의되지 않은 것 같습니다. 무슨 일이 일어나고 있나요? (맙소사)

저는 지난 몇 달 동안 oh-my-sh를 사용해 왔는데 정말 마음에 듭니다 :) 그리고 색상 배열 fg_bold[]가 있다는 것을 알았고 그 배열을 사용하여 색상으로 정보 메시지를 에코할 수 있습니다.

예: echo $fg_bold[yellow] "해보자!"

터미널에서 이것을 실행하면 매력처럼 작동합니다.

하지만 새로운 zsh 스크립트를 열고 복사하여 붙여넣으면 실패하는 것 같습니다($fg_bold[yellow]가 비어 있음).

#!/usr/bin/zsh #에서 가져옴which zsh

echo $fg_bold[yellow] "시작합시다!"

env추가할 더 많은 fg_bold 배열은 합계 에 표시되지 않습니다 printenv. 내가 여기서 무엇을 놓치고 있는 걸까요?

다들 감사 해요

답변1

이 변수는 colors자동 로드 기능에서 추출됩니다.

함수를 로드하고 실행해야 합니다.

autoload colors
colors

colors이 기능이 필요하지 않은 프롬프트 확장을 사용할 수도 있습니다 .

print -P %F{red}

또는:

echo ${(%):-%F{red}}

어쨌든 이것은 연관배열이다.껍데기변수는 환경으로 내보낼 수 있거나 내보내야 하는 항목이 아닙니다. 선언을 보려면 다음을 사용하세요 typeset -p fg_bold(변수에 -H(숨겨진 값) 속성이 있으므로 typeset -p값이 표시되므로 로 속성을 제거 typeset +H fg_bold하거나 로 값을 볼 수 있습니다 typeset fg_bold).

관련 정보