
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
バックティックを取り除きます。
答え2
コマンドの周りにバックティックを使用すると、次の出力を実行しようとします。
echo "flush_all" | /usr/bin/nc 172.16.198.130 11211
あなたの場合は、「ok」
コメントですでに述べたようにバックティックを削除するだけです。