The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Нужна помощ в отладке bash-скрипта"
Отправлено Kagato, 02-Июн-09 12:43 
Нужна помощ в отладке bash-скрипта для автоматического добавления/удаления пользователей.
Всю инфу скрипт берёт из файла с разделителем "|".
При запуске скрипт выдаёт ошибки:
line 63: неожиданный EOF при поиске соответствующего `"'
line 71: ошибка синтаксиса: неожиданный конец файла

Может кто сталкивался с подобным и знает в чём моя ошибка, кроме днк?

Собственно скрипт:
     1  #!/bin/bash
     2  #
     3  #
     4  ########environment declaration
     5  ufile=/tmp/incom
     6  td="" #add or del
     7  field= #первое поле
     8  ulogin= #user login
     9  upass="" #user pass
    10  ugroups="" #user groups
    11  strnum=1 #nomer stroki poiska
    12  str="" #string
    13  str1="add" #string1
    14  str2="del" #string2
    15  dels="" #number of first string of del section
    16  filend="" #number of last string
    17  uopt="" #option of del sect. that define delete homedir of usr or not
    18  n=1 # Счётчик
    19  #end of declaration
    20  #
    21  #Проверка наличия файла
    22  if  [ -e $ufile ]
    23          then
    24          dels=`cat /tmp/incom -n|grep "#delete" -i|awk '{print $1}'`
    25          filend=`cat /tmp/incom -n|grep end -i|awk '{print $1}'`
    26          else
    27          echo "File not faund"
    28          exit 0
    29  fi
    30  #
    31  echo $dels
    32  echo $filend
    33  echo $strnum
    34  #
    35  for field in $(awk 'BEGIN{FS="|"}{print $1}' < "$ufile" )
    36  do
    37          td=`sed -n '$n p' $ufile| grep add |awk 'BEGIN {FS = "|"};{print $1}'`
    38          #Проверка на добавление
    39          if [ "$td -eq "$str1" ]
    40          then
    41                  # polu4aem dannie uchetki
    42                  ulogin=`sed -n '$n p' $ufile| grep add |awk 'BEGIN {FS = "|"};{print $2}'`
    43                  ugroups=`sed -n '$n p' $ufile| grep add |awk 'BEGIN {FS = "|"};{print $3}'`
    44                  upass=`sed -n '$n p' $ufile| grep add |awk 'BEGIN {FS = "|"};{print $4}'`
    45                  #тест
    46                  echo "добавлен пользователь login= $ulogin, group= $ugroups, pass= $upass"
    47                  #тест
    48                  useradd "$ulogin" -G "$ugroups" -m -p "$upass" #dobavlaem usera s sozdaniem homedir #Добавляем юзера
    49                  echo "useradd "$ulogin" -G "$ugroups" -m -p "$upass""
    50          fi
    51  #
    52          if [ $td -eq "$str2" ] #proverka na udalenie
    53          then
    54                  ulogin=`sed -n '$n p' $ufile| grep add |awk 'BEGIN {FS = "|"};{print $2}'`
    55                  uopt=`sed -n '$n p' $ufile| grep add |awk 'BEGIN {FS = "|"};{print $3}'`
    56                  userdel --$uopt $ulogin
    57                  echo "userdel --$uopt $ulogin"
    58                  #тест
    59                  echo "удалён пользователь login= $ulogin, op= $uoupt"
    60                  #тест
    61          fi
    62  #
    63          if ["$n" -eq "$str2"]
    64          then
    65                  exit 0
    66          else
    67                  let n=n+1
    68          fi
    69  done
    70  exit 0


Файл который он разгребает:
     1  #ADD
     2  ##ToDo | login           | groups |pass
     3  #---------------------------------------------------------------------------------
     4  add|testovich|users,dialout,dip,video,lpadmin |lolodin
     5  add|testova|users,dialout,dip,video,lpadmin |lolodin
     6
     7  #DELETE
     8  ##TODO | Login |remove homdir or not
     9  #---------------------------------------------------------------------------------
    10
    11
    12  #TEST
    13
    14  #End.

система:
uname -a:
Linux test-laptop 2.6.28-11-generic #42-Ubuntu SMP Fri Apr 17 01:57:59 UTC 2009 i686 GNU/Linux

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.

На сайте действует частичное премодерирование - после публикации некоторые сообщения от анонимов могут автоматически скрываться ботом. После проверки модератором ошибочно скрытые сообщения раскрываются. Для ускорения раскрытия можно воспользоваться ссылкой "Сообщить модератору", указав в качестве причины обращения "скрыто по ошибке".



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру