$COLUMNSがenvまたはsetとしてリストされていないのはなぜですか? (zshから)

$COLUMNSがenvまたはsetとしてリストされていないのはなぜですか? (zshから)

私はできます。

$ echo $COLUMNS
95

結果を得るが、もし私が

env | grep COLUMNS

または

set | grep COLUMNS

私は何も得られませんでした。

(更新:ちょうどbashで動作が異なることがわかりました。私はzshを使用しています。)

第二に、列を含むリストをどのように/どこで取得できますか? (直接回答することは除く。)

ベストアンサー1

set | grep COLUMNS「バイナリファイル(標準入力)の一致」を表示する必要があります(GNU grepを使用)。ムル犯人は正しく識別されました。 zsh では、IFS標準文字のスペース、タブ、改行に加えて null バイトも含まれています。

set | grep --text COLUMNSgrepがバイナリファイルをスキップする傾向を無視するように実行します。

runはset多くのシェルで出力があいまいであるため、現在設定されているパラメータを一覧表示する移植可能で信頼できる方法ではありません(変数の値の一部である改行文字と変数を区切る改行文字を区別できません)。 zshsetの出力はあいまいにならないように引用されていますが、解析するのは難しいです。grep偽の肯定がまだ返されることがあります。 zshのすべてのパラメータを一覧表示するには、配列のキーを列挙しますparameters

print -rl ${(ko)parameters}

おすすめ記事