#!/bin/bash
echo "Number of hosts entered are "$#
echo "Hostnames are "[email protected]
for i in "[email protected]"
do
echo "Logging in to the host "$i
pbsh [email protected]$i '
ipaddr=`ip r | awk '{print $9}'`
if [ ipaddr = 172.*.*.* ]
then
echo "Script can not be run in this IP series"
exit
else
cd /var/tmp ; wget http://**********
fi'
done
上記のスクリプトを実行すると、以下のエラーが発生します。スクリプトは実行されていますが、目的の方法ではありません。シェルスクリプトでawkコマンドを使用して印刷できない
awk:cmd。行:1:{print
awk:cmd。行:1:^予想外の改行または文字列の末尾
私はスクリプト作成の初心者です。スクリプトで何か間違っている場合は、親切に私を修正してください。
あなた主な問題は 'pbsh'の終わりの' ''で、 '' awk'の中で別の ''によって終わります。おそらく '\ 'を使って後者をエスケープしたいでしょう。別のものはあなたの 'if'ステートメントです。** ipaddr ** stringの代わりに' $ ipaddr'変数をチェックしないと、決して真ではありません。 – Rogus