使用 nc 进行 telnet 的 bash 脚本报告“:命令未找到正常”

使用 nc 进行 telnet 的 bash 脚本报告“:命令未找到正常”

如果我进入 bash 提示符并运行以下命令(以刷新 memcached):

echo "flush_all" | /usr/bin/nc 172.16.198.130 11211

它工作并返回“OK”。

如果我将相同的命令放入一行 bash 脚本中:

#!/bin/sh
`echo "flush_all" | /usr/bin/nc 172.16.198.130 11211`

我得到以下输出:

: command not found OK

它是否尝试将“OK”作为第二个命令处理?我怎样才能防止这种情况(除了重定向到/dev/null)?

答案1

这个:#!/bin/sh `echo bob` `echo jim`

与我在终端上执行此操作相同:

# bob
bob: command not found
# jim
jim: command not found

删除反引号。

答案2

使用命令周围的反引号,您尝试执行以下输出:
echo "flush_all" | /usr/bin/nc 172.16.198.130 11211
在您的情况下,“确定”
就像注释中已经提到的那样,只需删除反引号即可。

相关内容