2012-01-07 23 views
1

tldp.orgで読んだことから、二重括弧構造((...))は、$のプレフィックスなしでbash変数を参照することができます。引数count変数$#を参照しようとしたときただし、スクリプトはハッシュが付けられ奇妙なbashの二重括弧構造体内の引数カウント変数

bash: ((: i < # : syntax error: operand expected (error token is "# ") 

、で動作するように拒否し、スクリプトは正常に動作します。あなたの参考のために

は、ここでの作業コードがあります:

fun(){ 
    i=0 
    while ((i < $#)); do 
      echo $1; 
      shift 
    done 
} 

私の質問は:プレフィックスとするとき、それはないですが含まれるように正しいときにどのように私は知っていますか?

答えて

2

$は、SPECIAL PARAMETERでない限り、放置することができます。また、PARAMETER EXPANSIONの内部に(())も必要です。$

+0

ありがとうございます。あなたは '(())'構造に関するより良い文書がどこにあるのか知っていますか? – seininn

関連する問題