デバッグシェルパラメータ

デバッグシェルパラメータ

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' 

おすすめ記事