0

最近、私は次の状況に混乱しています。2 つの使用方法の違いは何ですかif:

ケース1

amount=10  
if [[ $amount -eq 10 ]]   
then  
    echo "something"  
fi  

スクリプト出力:

$ ./1.sh  
something  

ケース 2

if [[ amount -eq 10 ]]   

これもこのように機能します (変数名に が含まれていないことに注意してください$)。

問題は、変数名にドル記号がなくてもどのように機能するかです。

PS HP-UX で POSIX シェルを使用しています。

4

1 に答える 1

1

man bash

算術評価 ... シェル変数をオペランドとして使用できます。パラメータ展開は、式が評価される前に実行されます。式内では、パラメータ展開構文を使用せずにシェル変数を名前で参照することもできます。

このコンテキストでは、シェルは数値以外は期待しないため、文字列を変数として展開します。それは私には理にかなっています。

于 2013-07-11T07:45:26.657 に答える