0
ssh行をコマンドラインから実行すると動作します。AWKがbashで動作しないスクリプト
bashスクリプトから、それは次のようになります。(awkコマンドの内部$変数が空である)
ssh [email protected] netstat --tcp| grep 'servervip3'| grep 'ldap'| awk ' == ESTABLISHED'| awk '{print }'| awk -F: '{print }' >>/somepath/somefile.txt
スクリプトセクション:
for ((i=0; i<${arraylength}; ++i))
do
# drop all beyond first period in SSH_ADDRESS[i] and add vip3
host_grep="`echo ${SSH_ADDRESS[i]}|awk -F. '{ print $1 }'`vip3"
ssh [email protected]${SSH_ADDRESS[i]} netstat --tcp| grep '$host_grep'| grep 'ldap'| awk '$6 == "ESTABLISHED"'| awk '{print $5}'| awk -F: '{print $1}' >>$seed_file
done
任意のアイデア?ありがとう-jim
grep '$ host_grep''を 'grep" $ host_grep "'に変更してください。 – anishsane
また、たくさんのawkとgrepを持つパイプラインは必要ありません。シングルawkはそれを行うことができるはずです。しかし、それは最適化の部分です。 – anishsane
そして 'grep'と' awk'の連鎖はどうですか?それはむしろ不必要なようだ。 –