次のスクリプトを完了しました。
#! /bin/sh
path="foo"
while touch $path ; do
path=./${path}
done
echo "echec avec le nom $path qui fait"
echo $path|wc -c
echo "caracteres"
同じ行に3つのエコー行を印刷する方法は?
ベストアンサー1
echo
まったく使用しない方がはるかに良いでしょう。echo
任意入力と組み合わせて使用すると、予期しない結果が生じる可能性があります。さらに、wc
シェル変数の文字数を数える必要はありません。シェルでもこれを行うことができ、起動するために別々のプロセスを実行する必要はありません。
たとえば、
そしてwc
:
_path=/some/place/in/my/filesystem
printf %s "$_path" | wc -c
###OUTPUT###
28
いいえwc
:
printf %s "${#_path}"
###OUTPUT###
28
2つのprintf
引数:
printf 'Arg char count:\t%s\nArg contents:\t%s\n' \
"${#_path}" "$_path"
###OUTPUT###
Arg char count: 28
Arg contents: /some/place/in/my/filesystem
あなたの命令:
printf 'echec avec le nom %s qui fait %s caracteres\n' \
"$_path" "${#_path}"
###OUTPUT###
echec avec le nom /some/place/in/my/filesystem qui fait 28 caracteres
バラよりなぜprintfがechoより優れているのですか?と仕様POSIX パラメータ拡張より多くの情報を知りたいです。