変数内の「?」文字をエスケープできません(Unix)

変数内の「?」文字をエスケープできません(Unix)

私はこの質問を見つけるためにすべてを見つけましたが、それを見つけることができず、現在の問題に対する答えもないようです。

それでは、私がやりたいことは疑問符から抜け出すのでしょうか?私の変数宣言から。明確に書かれた

var=?

しません。もちろん、バックスラッシュと疑問符を使用して問題を解決できます。通常は次のようになります。

var=\?

しかし、これはうまくいきません(しかし実際にはうまくいくはずです)。変数をエコーすると、実際に次のものが出力されます。

5 A X

(これは私のホームディレクトリにある3つのフォルダです。)その後、私のホームディレクトリやルート(フォルダA、B、Cがあります)などのディレクトリにあるときにこれが発生することがわかりました。そのため、cwdを新しく作成された空のディレクトリに変更しましたが、突然動作しました。これの具体的な理由は何ですか? 1文字のフォルダ名でしか発生しないようですが、\?で疑問符をエスケープしたので、そんなことは起こってはいけないと思います。

ベストアンサー1

echoコマンドでこの変数を引用する必要があります。

$ var=?
$ echo "$var"
?

おすすめ記事