Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
~/.bashrc ファイルで、echo コマンドを使用して引数をパイプライン経由で渡す関数を作成しようとしています。動作しますが、「\」文字を入力しようとすると消えます。\\ (2 つの '\') を入力すると、成功します。これは、 -E オプションを使用しても発生します...
では、以下のコードで「foobar」ではなく「foo\bar」を出力するにはどうすればよいでしょうか。
func() { echo -E "${@}" }
echoバックスラッシュを解釈するのは誰ではなく、シェルです。関数が呼び出される前でも解釈されます。正しい解決策は、関数への引数を引用することです。
echo
func() { echo -E "${@}" } func 'foo\bar'