#!/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