Модераторы: powerfox, ZeeLax
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка в sh скрипте 
:(
    Опции темы
ArsNov
Дата 8.2.2011, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 1.9.2005

Репутация: нет
Всего: 1



Есть sh с кодом: 
Код

#!/bin/sh
ps -A | grep refresh_process > /dev/null
if [ $? = "1" ]
then
echo "NOT WORKING"
else
echo "WORKING"
fi


При запуске выдает ошибку
 : No such file or directoryull
./status.sh: line 8: syntax error near unexpected token `fi'
./status.sh: line 8: `fi'

Подскажите, плиз ,где ошибка
PM MAIL ICQ   Вверх
spin2
Дата 8.2.2011, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 15.12.2005
Где: Москва-Одесса

Репутация: 2
Всего: 31



ArsNov, а сюда точно правильно скопировал текст?
И что ты хочешь сделать этим скриптом? Логика малость странная.


--------------------
"С кем тяжело молчать, с тем не о чем говорить" (Метерлинк)
блог
Все об ICQ-ботах
PM MAIL WWW ICQ Skype Jabber   Вверх
1000000dollars
Дата 8.2.2011, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 6.10.2007

Репутация: 1
Всего: 8



Ну я бы написал так:

Код

#!/bin/sh

if [ "x$(pidof httpd)" == "x" ]
then
echo "NOT WORKING"
else
echo "WORKING"
fi

PM MAIL   Вверх
ArsNov
Дата 8.2.2011, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 1.9.2005

Репутация: нет
Всего: 1



Цитата(1000000dollars @ 8.2.2011,  15:10)
Ну я бы написал так:

Код

#!/bin/sh

if [ "x$(pidof httpd)" == "x" ]
then
echo "NOT WORKING"
else
echo "WORKING"
fi

Скопировал твой вариант:

sh ./status.sh
./status.sh: line 2: pidof: command not found
./status.sh: line 2: [: missing `]'
: command not found:
WORKING

Блин, синтаксис не пойму никак.. Как расшифровать строчку if [ "x$(pidof httpd)" == "x" ] ? Кроме pidof как можно эту строку записать?  И в каком редакторе лучше sh файл делать, а то какие то проблемы с пробелами в конце строк, постоянно ошибки?

Это сообщение отредактировал(а) ArsNov - 8.2.2011, 15:31
PM MAIL ICQ   Вверх
spin2
Дата 8.2.2011, 16:12 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 598
Регистрация: 15.12.2005
Где: Москва-Одесса

Репутация: 2
Всего: 31



Код

#!/bin/bash
b=$(ps aux|grep processname|grep -v grep|tr -s " "|cut -f 2 -d " ")
kill -0 $b 2>/dev/null
a=$?
if [ $a == 1 ]
then
echo NOT WWORKING
else
echo WORKING
fi
exit



--------------------
"С кем тяжело молчать, с тем не о чем говорить" (Метерлинк)
блог
Все об ICQ-ботах
PM MAIL WWW ICQ Skype Jabber   Вверх
ArsNov
Дата 8.2.2011, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 1.9.2005

Репутация: нет
Всего: 1



spin и тебе спасибо большое, уверен что ты мне всё правильно написал, однако  
я получаю ошибку:
sh ./status.sh
: No such file or directoryull
./status.sh: line 12: syntax error: unexpected end of file

Особенно подозрительно выглядит слово directoryull, я создавал файл в редакторе scite , может в этом проблема?
PM MAIL ICQ   Вверх
1000000dollars
Дата 8.2.2011, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 6.10.2007

Репутация: 1
Всего: 8



Ах... как я восхищён! 

Что за операционка-то хоть? (просто любопытно)

Кстати, твой исходный скрипт у меня работает smile
PM MAIL   Вверх
ArsNov
Дата 9.2.2011, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 1.9.2005

Репутация: нет
Всего: 1



1000000dollars, я чайник в этом вопросе  smile  .  CentOS release 4.8 (Final). Файлы создаю в винде, потом перекидываю на сервак, проблема видимо в этом

Это сообщение отредактировал(а) ArsNov - 9.2.2011, 09:03
PM MAIL ICQ   Вверх
mihanik
Дата 9.2.2011, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: 1
Всего: 109



Вероятно.
В винде в конце строки Cr + Lf стоит (2 символа с кодами 13 и 10), а в линуксе только один...



--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
ArsNov
Дата 9.2.2011, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 1.9.2005

Репутация: нет
Всего: 1



Так и знал, придется vi изучать. Спасибо всем за ответы  smile 
PM MAIL ICQ   Вверх
ZeeLax
Дата 9.2.2011, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 4388
Регистрация: 20.8.2006
Где: Алма-Ата

Репутация: 7
Всего: 88



Утилита dos2unix вам в помощь. А вместо vi есть вполне сносный (для небольших правок) nano. Также есть mc, и его редактор - mcedit.


--------------------
Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none.
— Doug Larson
PM MAIL WWW ICQ Skype Jabber   Вверх
1000000dollars
Дата 9.2.2011, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 231
Регистрация: 6.10.2007

Репутация: 1
Всего: 8



ArsNov, очень странно, что в CentOS нет pidof, впрочем может быть проблема с переносами строк.

Варианты: 
0) винде найти текстовый редактор, умеющий сохранять текст с юниксовым переносом строк.
1) писать скрипты прямо в CentOS с помощью какого-нибудь текстового редактора (я бы рекомендовал использовать mcedit - он прост до невозможности)
2) если переливаешь скрипт по FTP - включить режим text (а не binary) для файлов *.sh

PS: зря сразу не сказал, что скрипты пишешь в винде, ну и как перекидываешь тоже не сказал вариант 2 - только для FTP прокатит smile
PM MAIL   Вверх
ArsNov
Дата 10.2.2011, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 1.9.2005

Репутация: нет
Всего: 1



Спасибо всем Вам за ответы. Проблема действительно в переносах строк, файлы перекидывал по ftp.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Linux/UNIX: Администрирование"
ZeeLax
Imple
nerezus
Этот форум предназначен для решения вопросов по администрации *n?x-систем, в частности по настройке сложных сетей и обслуживанию серверного оборудования.

  • Вы должны соблюдать правила форума.
  • Помните: какой вопрос, такой и ответ. Прежде чем задать вопрос прочитайте вот эту статью на форуме CIT.
  • Оскорблять запрещается.
  • Религиозные войны в Религиозных войнах.
  • Общение "просто так" в Клубе юнуксоидов. В отличие от многих других разделов, здесь разрешается сдержанно оффтопить и юморить в тему.

За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу).


В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим.


Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование *NIX систем | Следующая тема »


 




[ Время генерации скрипта: 0.0520 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.