【shell】四則演算の結果を返すプログラム

AWSのES2を使って四則演算の結果を返す方法です。

WebサーバではApacheを使用しています。

curl ‘http://example.co.jp/calc.cgi?1+1’
上記のようにリクエストを送ると結果が表示されます。

/var/www/cgi-bin 以下に calc.cgi と言うファイルを作成後、下記の通りにコードを書きます。

#!/bin/sh

echo "Content-Type: text/plain"
echo ""

if [ `echo ${QUERY_STRING} | grep -v -e "-" -e "+" -e "*" -e "/"` ]; then echo 'ERROR';
else echo "`echo \"${QUERY_STRING}\" | bc`"; fi

もし四則演算に使わない記号がリクエストされた場合は「ERROR」を返すようになっています。

追記: cgiファイルを実行させる方法

これをしてないと動かないので注意です。

/etc/httpd/conf/ 以下に httpd.conf と言うファイルがあるのでそれの末尾に以下の通り記載します。

<Directory "/var/www/cgi-bin/“>
Options +ExecCGI
AddHandler cgi-script .sh .cgi
</Directory>

詳しくは公式ドキュメントを参照してください。
https://httpd.apache.org/docs/2.2/ja/howto/cgi.html