#!/bin/sh --
expression_to_evaluate='12 + 3'
printf '%s\n' "Arithemtic Expansion: $(( $expression_to_evaluate ))"
printf '%s' 'bc: '
printf '%s\n' "$expression_to_evaluate" | bc
printf '%s' 'awk: '
awk -v expression_to_evaluate="$expression_to_evaluate" -- 'BEGIN{printf "%d\n", expression_to_evaluate}'
出力:
Arithemtic Expansion: 15
bc: 15
awk: 12
awk
15の代わりに12を返します。数学計算を実行するために文字列をどのように入力しますかawk
?
ベストアンサー1
expression_to_evaluate
これが機能している間にソースを制御しない限り、セキュリティ上のリスクがあるため、実行しないことをお勧めします。
$ expression_to_evaluate='12 + 3'
$ awk "BEGIN{printf \"%d\n\", $expression_to_evaluate}"
15