Telnet内のbashスクリプトで2つの変数を合計します。

Telnet内のbashスクリプトで2つの変数を合計します。

私は特定のポートをリッスンする必要があるスクリプトを書いていますが、誰かがそのポートを介して(Telnet経由で)接続すると、2つの数字を要求してその合計を返す必要があります。 telnet [my_server] [my_port]と入力したときと同じように2つの数字を要求し、その合計を印刷します。

私の場合、どのコマンドや構文を使用しても合計は印刷されません。

#!/bin/bash
nc -v -l -p 3360 -c 'echo Enter num1:
read num1
echo Enter num2:
read num2
echo "$(($num1+$num2))"'

ベストアンサー1

#!/bin/bash

add_num()
{
echo Enter num1:
read num1
echo Enter num2:
read num2
echo $(( $(echo $num1 | tr -d '\r') + $(echo $num2 | tr -d '\r') ))
}

rm -f /tmp/f; mkfifo /tmp/f
cat /tmp/f | add_num 2>&1 | nc -l 127.0.0.1 1234 > /tmp/f

これはうまくいくはずです... ncは-cオプションをサポートしておらず、マニュアルページでは上記の構文を使用する必要があることが示されています。また、Telnet入力からキャリッジリターンをカットする必要があります。

おすすめ記事