Форум: Общи Проблеми и Въпроси
Тема: bash скрипт грешка
Автор: mcwolf

Мнение от mcwolf пуснато на Юни 13 2006, 18:55
а ето и самият скрипт
Код: 

#!/bin/bash
CONFIG="/etc/dhcpd.conf";

if [ -f $CONFIG ]; then
       current=0;
       for row in `grep -v ^# $CONFIG | awk '{if($1 == "fixed-address" && length($2)) print $2}'`; do
               row=`echo $row | tr -d ";"`;
               ip[$current]=$row;
               let "current += 1";
       done;

       let "current = 0";
       for row in `grep -v ^# $CONFIG | awk '{if($1 == "hardware" && $2 == "ethernet" && length($3)) print $3}'`; do
               row=`echo $row | tr -d ";"`;
               mac[$current]=$row;
               let "current += 1";
       done;

       if [ ${#ip[@]} -eq ${#mac[@]} ]; then
               for (( i = 0; i < ${#ip[@]}; i++ )); do
                       echo "iptables -t nat -s ${ip[$i]} -m mac --mac-source ${mac[$i]} -j ACCEPT;";
               done;
       fi;
fi;


скриптът чете конфигурационният файл на dhcp сървърът и генерира правила за iptables - на няколко машини работи - всъщност не работи единствено на машината за която е писан - дава следната грешка
Код: 

iptables -t nat -s 192.168.1.2 -m mac --mac-source 00:C0:CA:dB:94:80 -j ACCEPT;
: command not found3:
: command not found2:
iptables -t nat -s 192.168.1.3 -m mac --mac-source 00:14:22:B3:BA:40 -j ACCEPT;
: command not found3:
: command not found2:
iptables -t nat -s 192.168.1.4 -m mac --mac-source 00:C0:AF:10:10:02 -j ACCEPT;
: command not found3:
: command not found4:
: command not found5:


по точно работи - но мамкаму : command not found5: и подобните му на какво се дължат ?

< http://galiry.linux-index.org:1024/download/ > (на тоя адрес съм сложил скриптът и примерен конфиг файл)



Мнение от Red пуснато на Юни 20 2006, 15:36
От съвсем скоро се занимавам със shell ######, но си мисля, че проблема е в последната част. Можеш ли да го пробваш така :
Код: 

#!/bin/bash
CONFIG="/etc/dhcpd.conf";

if [ -f $CONFIG ]; then
      current=0;
      for row in `grep -v ^# $CONFIG | awk '{if($1 == "fixed-address" && length($2)) print $2}'`; do
              row=`echo $row | tr -d ";"`;
              ip[$current]=$row;
              let "current += 1";
      done;

      let "current = 0";
      for row in `grep -v ^# $CONFIG | awk '{if($1 == "hardware" && $2 == "ethernet" && length($3)) print $3}'`; do
              row=`echo $row | tr -d ";"`;
              mac[$current]=$row;
              let "current += 1";
      done;
     i=0
while [ $i -lt $current ];do
echo "iptables -t nat -s ${ip[$i]} -m mac --mac-source ${mac[$i]} -j ACCEPT;"
let "i=$i+1"
done
fi

Powered by ikonforums 1.0.0 © 2006 ikonforums