如果我进入 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
在您的情况下,“确定”
就像注释中已经提到的那样,只需删除反引号即可。