bash echoで「-E」を印刷する方法は?

bash echoで「-E」を印刷する方法は?

echoを実行し、次のような出力を取得したいと思います。

$ export EVAR="-E"
$ echo "$EVAR"
-E

たとえば、bash変数に「-E」を保存しました$EVAR。 echoを実行すると、echo $EVAR何も印刷されません。おそらく、$EVARが-Eパラメータであると思うかもしれません。二重引用符で引用することも$EVAR機能しません。

どのように印刷できますか?

ノート$EVAR:$EVARの内容を理解できず、$EVARの内容を分析しない解決策があるかもしれないと思いましたecho some-arg $EVAR。可能ですか?または、このような回避策を使用する必要がありますかprintf

ベストアンサー1

次のトリックを使用できます。

echo " $EVAR"
echo  -e "\055E"
echo $'\055E'

しかし、私が言ったように、これはトリックです。実際の解決策は常にprintfを使用することです。

$ printf '%s\n' "$EVAR"
-E

おすすめ記事