将字符串传递给脚本内的 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

它似乎正在发挥作用。 。 。

相关内容