~、~-、~+、* の種類は何ですか?

~、~-、~+、* の種類は何ですか?

私の理解が正しければ、pwdはコマンド、PWDは変数 (の名前)、-incd -はオペランドです。

、、 が、それぞれ、前回アクセスしたディレクトリ、現在のディレクトリ、現在のディレクトリの下のファイルを意味する場合、~それら~-の型は何ですか? (プログラミング言語の観点から)~+*$HOME

それらは変数の名前ですか? そうであれば、なぜecho $~機能しないのですか?

なぜ*働くのか:

for i in *; do ls "$i"; done

答え1

*はメタ文字 (またはワイルドカード) で、その他はすべてtilde-prefix例です (~は標準で~+~-は拡張機能です)。

いずれも変数ではないので、 をプレフィックスとして付ける意味はありません$

echo $~正常に動作し、 が表示されます。はプレフィックスとして使用されていない$~ため、展開はありません。~

for i in *; ...設計どおりに動作します。

関連情報