Bashでコマンドを置き換えるには、次のようにします。
hello=$(ls -la)
echo "$hello"
ただし、以下のコマンドで同じ操作を実行すると、失敗して乱数が見つからないというメッセージが表示されます。
hell=$(RANDOM)
echo "$hell"
算術拡張を使用すると、これを克服できます。
hell=$((RANDOM))
echo "$hell"
以下がうまくいかないのはなぜですか?私が理解したところによれば、ランダムも命令なので、数値エコーを受けなければなりません。
hell=$(RANDOM)
echo "$hell"
答え1
RANDOM
コマンドではなく変数です。ただ1セットは貝殻で構成されていますが、何か特別なものがあります。:
RANDOM このパラメーター(*)が参照されるたびに、0 ~ 32767 の任意の整数に拡張されます。この変数に値を割り当てると、乱数ジェネレータがシードされます。 RANDOM が設定されていないと、後でリセットしても特殊属性が失われます。
echo "$RANDOM"
より「一般的な」変数などの変数を使用する方法HOME
と同じですBASH_VERSION
。もちろん${RANDOM}
、一般括弧の代わりに中括弧を使用することも可能です。
なしで算術拡張に使用$
できます算術コンテキスト、すべての変数で動作します。
式内では、シェル変数はパラメーター拡張構文を使用せずに名前で参照することもできます。
(例:x=4; echo "$((x*x))"
印刷物16
)
(*ここで変数とパラメータの違いは無視しても構いません。)