私の理解が正しければ、pwd
はコマンド、PWD
は変数 (の名前)、-
incd -
はオペランドです。
、、 が、それぞれ、前回アクセスしたディレクトリ、現在のディレクトリ、現在のディレクトリの下のファイルを意味する場合、~
それら~-
の型は何ですか? (プログラミング言語の観点から)~+
*
$HOME
それらは変数の名前ですか? そうであれば、なぜecho $~
機能しないのですか?
なぜ*
働くのか:
for i in *; do ls "$i"; done
答え1
*
はメタ文字 (またはワイルドカード) で、その他はすべてtilde-prefix
例です (~
は標準で~+
、~-
は拡張機能です)。
いずれも変数ではないので、 をプレフィックスとして付ける意味はありません$
。
echo $~
正常に動作し、 が表示されます。はプレフィックスとして使用されていない$~
ため、展開はありません。~
for i in *; ...
設計どおりに動作します。