バックスラッシュを$1に保ちます。

バックスラッシュを$1に保ちます。

バックスラッシュを含むパラメータ($ 1)を受け入れるスクリプトを作成しようとしていますが、スクリプトで入力されたバックスラッシュを使用してパラメータ($ 1)を正確にエコーするようにしたいと思います。

例えば

$ ./tst \\abc\def\ghi\jkl\lmn\
\\abc\def\ghi\jkl\lmn\

私のtstスクリプトは現在次のとおりです。

#!/bin/bash
echo $1

スクリプトを実行すると返されます。

\abcdefghijkllmn

私はそれを返したいと思います:

\\abc\def\ghi\jkl\lmn\

まさに私が入力したものです。私も試してみましたが、echo -E $1あまり違いはありませんでした。

私のスクリプトから目的の戻り出力を取得する方法について提案がある場合は、大変感謝します。

答え1

一重引用符( ')を使用してスクリプトに引数を渡します。これがなければ、シェルはスクリプトが引数を見る前に引数を食べます。

$ ./tst '\\abc\def\ghi\jkl\lmn\'

関連情報