数学的計算のためにawkに文字列をどのように入力しますか?

数学的計算のためにawkに文字列をどのように入力しますか?
#!/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

awk15の代わりに12を返します。数学計算を実行するために文字列をどのように入力しますかawk

ベストアンサー1

expression_to_evaluateこれが機能している間にソースを制御しない限り、セキュリティ上のリスクがあるため、実行しないことをお勧めします。

$ expression_to_evaluate='12 + 3'
$ awk "BEGIN{printf \"%d\n\", $expression_to_evaluate}"
15

おすすめ記事