スクリプト内のsocatに文字列を渡す

スクリプト内のsocatに文字列を渡す

結果を記録できるように、アプリケーションで接続文字列をトリガーするスクリプトを作成しようとしています。

たとえば、私のアプリケーションに正常に接続してログインできますか?

コマンドラインから次を実行できます。

conRes=$(echo -e -n "\0\x1\x01\x0\x0\x0\x0\x0" | socat STDIO tcp4:127.0.0.1:12345)

その後、結果を確認してください${conRes}

それから私のアプリケーションを見ると、接続が確立され、接続文字列が適用され、接続が失われることがわかります。

ただし、スクリプトに入れるとすぐに動作が停止します。

例えば

#!/bin/bash
    conRes=$(echo -e -n "\0\x1\x01\x0\x0\x0\x0\x0" | socat STDIO tcp4:127.0.0.1:12345)
    if [ "${conRes}" != "" ]; then
        echo "conRes Successful: ${conRes}"
    else
        echo "conRes Failed"
    fi

私のアプリケーションを見ると、接続と切断を見ることができますが、接続文字列が送信されているという兆候はありません。

これを行うには、さらに行う必要がありますか?

答え1

私の質問に答えることができるようです。

私の問題は、次のようにスクリプトを呼び出すようです。

sh test1.sh

単にこれを変更して電話すると

./test1.sh

うまくいくようです。 。 。

関連情報