Telnetにncを使用するBashスクリプトは、「:コマンドが見つかりません。OK」を報告します。

Telnetにncを使用するBashスクリプトは、「:コマンドが見つかりません。OK」を報告します。

bashプロンプトに移動して次のコマンドを実行すると(memcachedをフラッシュするため):

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

動作し、「OK」を返します。

同じコマンドを1行のbashスクリプトに入れると、次のようになります。

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

次の結果が表示されます。

: command not found OK

2番目のコマンドで「OK」を処理しようとしていますか? /dev/nullにリダイレクトする以外にこれを防ぐにはどうすればよいですか?

ベストアンサー1

この: #!/bin/sh `echo bob` `echo jim`

端末でこれを行ったのと同じです。

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

バックティックを取り除きます。

おすすめ記事