0

~/.bashrc ファイルで、echo コマンドを使用して引数をパイプライン経由で渡す関数を作成しようとしています。動作しますが、「\」文字を入力しようとすると消えます。\\ (2 つの '\') を入力すると、成功します。これは、 -E オプションを使用しても発生します...

では、以下のコードで「foobar」ではなく「foo\bar」を出力するにはどうすればよいでしょうか。

func()
{
    echo -E "${@}"
}
4

2 に答える 2

2

echoバックスラッシュを解釈するのは誰ではなく、シェルです。関数が呼び出される前でも解釈されます。正しい解決策は、関数への引数を引用することです。

func()
{
    echo -E "${@}"
}

func 'foo\bar'
于 2013-05-19T17:31:35.847 に答える