The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Помогите доработать (парсинг)"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"Помогите доработать (парсинг)"  +/
Сообщение от Amiri email on 14-Май-09, 10:22 
Суть в следующем хочется сделать скрипт чтобы он проверял в файле один параметр например слово UP и выполнял какое нибудь действие
если слова UP нету  то ничего не выполнять
соответственно написал такой скриптик

#!/bin/sh
cat run.pid| grep -v '^ *#'| while read text; do
if [ $text = "UP" ];then
echo "yes"
else
echo "no"
fi
done

но получаеться что если перед UP поставить пробел то скрипт не отрабатывает или если несколько пробелов и завершаеться такой вот ерундой
./to.sh: test: argument expected
пример файла run.pid
-
cat run.pid

   1

  UP

   0

-
посоветуйте что я не так делаю

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Помогите доработать (парсинг)"  +/
Сообщение от Pahanivo email(ok) on 14-Май-09, 12:18 
вы все делаете не так
man sh
man grep

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Помогите доработать (парсинг)"  +/
Сообщение от phpcoder email(??) on 15-Май-09, 11:11 
>#!/bin/sh
>cat run.pid| grep -v '^ *#'| while read text; do
>if [ $text = "UP" ];then
>echo "yes"
>else
>echo "no"
>fi
>done

Можно проще:

if fgrep -qs 'UP' run.pid; then
  echo 'yes'
else
  echo 'no'
fi

>но получаеться что если перед UP поставить пробел то скрипт не отрабатывает
>или если несколько пробелов и завершаеться такой вот ерундой
>./to.sh: test: argument expected

Потому что в этом случае $text является пустым и ваш if выглядит так:

if [ = "UP" ];then

что неверно. Нужно взять $text в кавычки:

if [ "$text" = "UP" ];then

Советую привыкать "кавычить" переменные.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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