2017-05-13 6 views
-2

に誰かが私に

str=hello 
echo ${#str} 

を、このコマンドを説明することができ、このコードは、変数strのの文字数をカウントします。私はそれがどのように動作するのか知りたいのですが、記号$、#、{}はそこにあるのです

ありがとうございました。

+0

Parameter Expansion一部ですべてですと述べました。 _Parameter Expansion_というタイトルのセクションで_Parameter length_を探します。 – John1024

+0

なぜコメントなしでdownvotes?質問は完全かつ明確で、ここでは他の多くの質問と同じくらい些細なものではありません。 – Klaus

答えて

1

は「$」、パラメータ展開を紹介しますので、ここでは実際の値を持つ変数「置き換え」:かっこ付き

str=hello 
echo $str 
> hello 

:{}は、パラメータ名の境界を定義することができます。だから: "パラメータの後に、その名前の一部として解釈されない文字が続きます"。たとえば、これは「asdfgは」パラメータ名の一部ではないことを示しています。

str=hello 
echo ${str}asdfg 
> helloasdfg 

「#」はちょうどあなたがそのパラメータの値の長さが必要であることを伝えます。

str=hello 
echo ${#str}asdfg 
> 5asdfg 

しかしJohn1024 @として、それはあなたが男bash` `で答えを見つけることができますman bash

+0

また、オンラインドキュメント(https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html)も充実しています。 – ilkkachu

関連する問題