2016-05-02 6 views

答えて

3

、それはその変数の値の長さの略:

$ v="hello" 
$ echo ${#v} 
5 

$ v="bye" 
$ echo ${#v} 
3 

ので、このコマンドは何でしょうか?

END_POS=$((${#column}-$COLON_INDEX)) 

$columnの値の長さを取得し、演算を実行する$(())構文を使用して$COLON_INDEXの値をsubstracts:

$ column="hello" 
$ colon_index=2 
$ r=$((${#column}-$colon_index)) # len("hello") - 2 = 5 - 2 
$ echo $r 
3 

Arithmetic expressionから:

(() )は、標準のsh機能ではありません。 kshの があり、ksh、Bash、zshでのみ利用できます。 $(()) POSIXシェルでの置換が許可されています。予想通り、 $(()内の算術式の結果は に置き換えられます)。パラメータの置換の場合と同様に、算術 の置換は単語の分割の対象となるため、リストのコンテキストでは、 への引用を避ける必要があります。

+0

確かに変数の値の長さ –

+0

@EdHeal errr true:) – fedorqui

1

私は考えることができる#のすべての可能な用途:

それが配列の場合は、変数の値や要素の長さの略:

私は変数の値の長さをエコーし​​ている、配列の長さそして配列の1番目のインデックス要素の長さは:

$ var="abcd" 
$ echo "${#var}" 
4 
$ arr=('abcd' 'efg') 
$ echo "${#arr[@]}" 
2 
$ echo "${#arr[1]}" 
3 
$ 

また$#はあなたにスクリプト/関数に渡されるパラメータの数を示します。

+0

私を助けてくれてありがとう.. –

関連する問題