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)。

関連情報