echo
受信したパラメータを表示するための同様のコマンドがありますか?
例えば、echo "a b" c
ディスプレイa b c
しかし、似たようなものを見たいです"a b" "c"
。
答え1
たとえば、次のように使用できますprintf
。
$ printf ">%s<\n" "a b" c
>a b<
>c<
または、必要な区切り記号を使用してください。ただし、これを行うと、set -x
シェルスタイルで引用された出力は生成されません。そして、常にフォーマット文字列を複数回印刷するので、printf ">%s<\n"
他の引数は生成されません><
。
または、Bashからシェルスタイルの引用出力を取得します。
$ printf "%q\n" "a b" c
a\ b
c
欠点は、%q
引用符よりもバックスラッシュを好むため、出力が見苦しく、必要以上に読みにくいということです。
もちろん、これを行うために外部スクリプトを作成することもできますが、あなたの場合は解決策が重すぎる可能性があります。
$ cat args.sh
#/bin/bash
printf "%d args: " "$#"
for x do
printf "%s " "${x@Q}" # nicer output than printf %q
done
echo
$ ./args.sh "a b" c
2 args: 'a b' 'c'