testという名前のこの単純なスクリプトを検討してください。
#!/bin/bash
echo $1
次のコマンドと呼び出し:
$ echo "A B"
A B
$ echo ""A B""
A B
$ echo """A B"""
A B
$ echo """A B"""
A B
$ ./test "A B"
A B
$ ./test ""A B""
A
$ ./test """A B"""
A B
$ ./test """"A B""""
A
テストの呼び出しがコマンドエコーのように動作しない、または関連するドキュメントをポイントしない理由を誰かが説明してもらえますか?
2
すでにテストコマンドがあります。フルパスを使用していたのは幸運です。それ以外の場合は、状況のデバッグに苦労しました。
—
Rui F Ribeiro
この種のテストの場合は、
—
Charles Duffy
printf '%q\n' "$@"
代わりにを使用する方が良いです。これによりecho
、非表示の文字と空白が目に見える形式でエスケープされた状態で引数が1行ずつ出力されます。