基本変数コマンドの追加

基本変数コマンドの追加

コマンドは...

t=20
s=$t+30

私が望む出力ですが、echo $s追加を実行するようにコマンドを50書く方法がわかりません。s=

ベストアンサー1

デフォルトでは、シェル変数は文字列です。一部のシェルは他の変数型をサポートしていますが、シェルにこれを知らせる必要があります。

すべてのPOSIXスタイルのシェル(sh古代のUnixシステム、ダッシュ、bash、ksh、zshなどを除く)では、次のものを使用できます。算術拡張変数の割り当てを解析するときに算術演算を実行するようにシェルに指示します。

t=20
s=$((t+30))
echo "$s"

(ここでは二重引用符は必要ありませんが、これは成長する価値がある良い習慣です.)

評価する式のテキストを保存し、印刷時に算術演算を実行することもできます。

t=20
s=$((t+30))
echo "expression: $s; evaluated: $(($s))"

ただし、算術式で明示的な変数置換を使用するときは注意してください。算術サブ式ではなくリテラルに置き換えられるため、演算子の優先順位が奇妙に見えることがあります。

echo "$(($s*2))" # equivalent to $((t+30*2)), so prints 80, not 100

Bash、ksh、またはzshで使用できますletまたは((…))算術演算を実行します。

t=20
let s=t+30
echo "$s"

または

((t = 20))
((s = t + 30))
echo "$s"

またはその変形。

bash、ksh、またはzshのもう1つの可能性は、以下を使用することです。typeset変数を整数として宣言する機能が組み込まれています。その後、各割当に対して算術評価が行われる。

typeset -i s t
t=20
s=t+30
echo "$s"

おすすめ記事