echoおよびwcコマンドを使用して文字列の長さを見つける方法

echoおよびwcコマンドを使用して文字列の長さを見つける方法

私は以下を試しています:

Len='echo $str | wc -c'

しかし、私は次のような結果を得ます。

'Echo $str|wc -c'

私は何が間違っていましたか?

答え1

コマンドの置換に引用符を使用するには、たとえば、単一引用符( ')の代わりに逆引用符( ` )を使用する必要があります。 :

Len=`echo $str | wc -c`

他の人が述べたように、構文を使用することもできますlen=$(...)

答え2

Len='echo $str | wc -c'

その後、変数はLen文字列に設定されますecho $str | wc -c(何も出力しません)。

シェルはコマンド置換ではないため、文字列のコマンドは実行しません。

コマンドの出力を取得するには、コマンド置換を使用します$(...)

Len=$( echo "$str" | wc -c )

この場合、以下を使用することもできます。

Len="${#str}"

これははるかに高速です。

パラメータ拡張は${#parameter}値の長さまで拡張されますparameter

答え3

コマンドの出力をLen変数に割り当てる必要があります。

Len=$(echo "$str" | wc -c)

関連情報