![]() |
|
Модераторы: powerfox, ZeeLax |
![]()
|
|
| Маринка |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 5.12.2003 Где: Иркутск Репутация: нет Всего: нет |
Здравствуйте!Я вот скопировала из одной книжки исходный текст программки, которая удаляет нулевые файлы (0-го размера) из каталога и записывает в файл Log_del название удалённого файла. Выдаются 2 ошибки в перых строчках.Почему.Не понимаю, вробе ды всё хорошо....
#! /bin/bash if ! test -d $1 then echo "$1 is not directory"; echo "Input directory"; exit 1 fi for i in $1/* do if test -d $i then del_null $i else ( if ! test -s $i then ls -l $i >> $HOME/bin/log_del.txt echo "Delete file " >> $HOME/bin/log_del.txt rm $i fi ) fi done Рис. Текст файла-сценария для удаления файлов нулевого объема |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Маринка, а может bash у Вас не в /bin/bash лежит?
Какие конкретно ошибки выдаются? |
|||
|
||||
| Маринка |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 5.12.2003 Где: Иркутск Репутация: нет Всего: нет |
Да, наверное, но что тогда делать?
Ошибки: (о.с - название файла) о.с:1:3:invalid preprocessing directive #! o.c:2:syntax error before "if" Зачем нужна первая строчка ? Почему ошибка во второй строчке?Как можно изменить текст программки, чтобы всё было хорошо? |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
В этой строчке:
#! /bin/bash между #! и /bin/bash не должно быть пробела Вот так правильно: #!/bin/bash |
|||
|
||||
| Маринка |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 5.12.2003 Где: Иркутск Репутация: нет Всего: нет |
Всё равно те же самые ошибки!!! (((((
Я уже и так пробовала и так...ничего не понимаю. А как на счет того, что bash не в /bin/bash лежит? Это ничего? Добавлено @ 10:34 ls -l $i >> $HOME/bin/log_del.txt echo "Delete file " >> $HOME/bin/log_del.txt и вот эти вот строчки , означают, запись в файл по указанному адресу??Адрес я могу изменить да?В свою папку...Или это что-то другое? |
|||
|
||||
| DENNN |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 3 Всего: 43 |
это очень плохо А если серьезно, то либо путь впиши верный, либо софт-линк в этой папке на него сделай.
Да. Исправляй, проверяй. P.S. конкрентно особенности bash не помню, но я бы написал так
|
||||||
|
|||||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
не, погоди... где все это происходит? в какой оси? какой шелл? что если удалить первую строку и явно сделать
sh ./del_null . ? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Вполне возможно, что файл создан в windows
В этом случае надо перед выполнением переформатировать его с помощью dos2unix |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 3 Всего: 43 |
sergej.z
Это не должно мешать выполнению скрипта. |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
DENNN, мне некогда разбираться, что этот скрипт должен выполнять. Просто у меня на aix'e я его запуатил и ошибок он никаких не выдаёт. Вот и ищем причины...
|
|||
|
||||
| Маринка |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 5.12.2003 Где: Иркутск Репутация: нет Всего: нет |
Я всё это делаю в Университете.Заходим через lizard, вводим логин, пароль.и работаем в своей директории.
Это я так..на всякий ..говорю. Linux (posix) только начали изучать..поэтому я его ещё не так хорошо понимаю... sh ./del_null . - ---вот это вот совсем не понимаю..зачем так?почему? Я не знаю, где находится bash не могу его найти ( |
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: нет Всего: 19 |
Очень похоже на ошибки gcc |
|||
|
||||
| Маринка |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 5.12.2003 Где: Иркутск Репутация: нет Всего: нет |
ну да...
Я когда ..т.е. чтобы запуститьпрограмму..я её так компилирую.. - gcc o.c. А что? |
|||
|
||||
| Secandr |
|
|||
|
Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 1 Всего: 39 |
Маринка скрипты на bash не компилируются, а запускаются просто так.
|
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: нет Всего: 19 |
Маринка
просто введи две команды chmod 777 o.c ./o.c в каталоге с о.c |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
А-а-а-а я то думаю в чём дело? у меня скрипт работает
Три действия
|
|||
|
||||
| Маринка |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 5.12.2003 Где: Иркутск Репутация: нет Всего: нет |
вот такие ещё ошибки
del_null: command not found в 10-й строчке и !test: command not found - во 2-й строчке и ещё.:А зачем надо вводить chmod 777 этой командой я даю права доступа всем пользователям к моему файлу.Это неправильно. а что это означает: fi ??? (в этом тексте) Добавлено @ 14:00 Я когда удалила эти строчки с ошибками (т.е. работу с каталогами) запустила ещё раз....ничего...занялась другими делами..потом чуть позже посмотрела...создался файл Log_del....(!) я уж подумала ..ЧУДО!! Итог- неужели это так медленно работает??ОЧЕНЬ МЕДЛЕННО!почему? |
|||
|
||||
| Akina |
|
||||||||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
Предполагалось, что имя скрипту будет дано не o.c как у тебя, а именно del_null... что-то мне подсказывает что в книжке, из коей ты передирала код, это черным по белому написано...
пробел нужен между ! и test
сделай 700. или 755. В общем что считаешь правильным, то и сделай - ты владелец, тебе и решать. Но x - обязательно. или запускать через точку.
конец оператора if - наоборот он написан. Оператор case закрывается соответственно esac и т.п.
рекурсивно обойти все каталоги и протестить все файлы - а их у тебя вагон... еще бы не долго... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||||||||
|
|||||||||||
| Маринка |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 5.12.2003 Где: Иркутск Репутация: нет Всего: нет |
1. Код я не передирала.
2. Да, действительно, (ещё раз внимательно просмотрела текст, который написан перед этим кодом...ммм....), там написано - "Здесь используется рекурсивно вызов файла сценария - "del_null".Полный текст файла сценария представлен ниже."***********...........Что я могу сказать..ну не сразу дошло.. что поделаешь..Зато ТЕПЕРь я всё это запомню РАЗ И НАВСЕГДА!!! 3. Ставила я пробел - ничего не меняется. 4. запускать через точку - это вот так ? ----= ./del_null а почему или надо х или через точку???Почему так??Конечно я лучше через точку запущу!хотя.. х - это же значит, что другие могут только исполнять файл...а х всем делать? т.е. chmod o+x ?? 5. Интересно как закрываются эти операторы! )) А я сначала подумала, что это опечатка..) 6. ВСЕ КАТАЛОГИ ПРОХОДИТ!!!!?????? А мне казалось, что он проверяет только файлы в текущей директории.Теперь понятно... Итог: Здорово НАконец-то я что-то понимаю!!!!УРА!!! Наконец-то должно работать!!! )))) Наконец-то я разобралась!!! [b]СПАСИБО ВСЕМ ОГРОМНОЕ!!![/b] |
|||
|
||||
| Akina |
|
||||||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
Нет. Потому что ./del_null это ты просто указываешь что файл, который ты хочешь запустить, находится в текущем каталоге. Но если у тебя нет права выполнения - он и не запустится. Или запустится файл того же имени, но из другого каталога, который есть в PATH совсем другое дело вот так: . ./del_null Это значит что надо выполнить этот файл даже при отсутствии у него атрибута "выполнение". Правда оно не каждому доступно...
а рекурсия ака самовызов?
э-э-э... всем - это chmod a+x... o+x - это только owner-у...
man bash <Enter> /GRAMMAR <Enter> и читай пока не надоест... Это сообщение отредактировал(а) Akina - 9.12.2004, 18:33 -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||||||
|
|||||||||
| Guest |
|
|||
|
Unregistered |
Ну вы советов тут надавали бедной девушке.
Она и в будущем на все скрипты будет 777 ставить - оно же работает... Админы, блин. ;( |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
в чем проблема? кто в ее /usr/home/Marinka залезет? рут? так ему вообще фиолетово какой у нее чмод... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Надавай же умных советов! Ув. Гость..
|
|||
|
||||
| Guest |
|
|||
|
Unregistered |
Я бы сказал, что ей вполне хватило бы 700. Между прочим, приходилось видеть, как такие советы действуют - а пофиг, выставляем и на php-скрипты такие же права... Надо чтоб по-быстрому заработало... Сам догадаешься, к чему это может привести? Понятное дело, для учебного скрипта это не критично. Но, всё-таки, почему 777 - зачем?? "Доктор, что я не так делаю?" (с) |
|||
|
||||
| simanyay |
|
|||
![]() Антон Ковалёв ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2053 Регистрация: 22.8.2002 Репутация: 11 Всего: 36 |
Я вообще посоветую девушке почитать про работу с файлами и папками в Linux
-------------------- «It's better to be a pirate than to join the Navy» — Steve Jobs. |
|||
|
||||
| Маринка |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 5.12.2003 Где: Иркутск Репутация: нет Всего: нет |
мда...ммм...спасибо...за совет..конечно.НО..Нафига тогда вообще нужен форум если я и многие другие всё могли бы узнать из всяких там справок.
Добавлено @ 18:44
1. я не бедная 2.в будущем я не буду ставить 777 ..ни в будущем , ни сейчас .Что я совсем что ли..давать полный доступ к файлу!нееет .Он мой и я его никому не отдам. ) |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Маринка, пральна!
Так держать |
|||
|
||||
| StealtH |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 16.9.2004 Репутация: нет Всего: нет |
Уважаемые участники дискусии!
Я полностью согласен с Guest, в том, что не следует учить людей ставить даже ради проверки работы скрипта или любого другого программно исполняемого кода права на доступ 777, в данном случае ув. Маринка попалась из разряда толковых пользователей, а как быть с теми, кто читает этот форум, и вааще не имеет представления о правах доступа к файлам в *nix системах? Юзвери этж такой народ - плохому всегда быстро учаться. |
|||
|
||||
| Mad |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: нет Всего: 19 |
А простым Юзверам не следует скрипты писать |
|||
|
||||
| Маринка |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 5.12.2003 Где: Иркутск Репутация: нет Всего: нет |
так этот доступ 777 т.е. всем ..он..на самом деле это ТАК УЖАСТНО??!!!! Это же всего лишь доступ всем для всего неужели кто-то будет искать чел-ка и этот файл, чтобы что-то там наделать? мда ..ну не знаю..конечно это плохо, но на самом деле это кому-то нужно???
|
|||
|
||||
| simanyay |
|
|||
![]() Антон Ковалёв ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2053 Регистрация: 22.8.2002 Репутация: 11 Всего: 36 |
А нафига нужны справки если я и многие другие всё могут узнать из форума? -------------------- «It's better to be a pirate than to join the Navy» — Steve Jobs. |
|||
|
||||
| Secandr |
|
|||
|
Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 1 Всего: 39 |
Маринка Меня похакали через файл с такими провами, вернее задефейсили сайт
|
|||
|
||||
| Маринка |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 5.12.2003 Где: Иркутск Репутация: нет Всего: нет |
Так всё-таки (вернёмся к моей теме - хоть на минуточку)) Можно ли сделать так, чтобы он просматривал не ВСЕ файлы, а , например, файлы из конкретной директории или из текущей. Потому, что...вдруг он удалит какие-то нужные файлы...
|
|||
|
||||
| Маринка |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 5.12.2003 Где: Иркутск Репутация: нет Всего: нет |
Справки появились раньше, чем форум. .. Вот правильно вы сейчас сказали ув-й, я и узнаю здесь вопросы мне не понятные.Зачем надо говорить - иди и почитай? |
|||
|
||||
| simanyay |
|
|||
![]() Антон Ковалёв ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2053 Регистрация: 22.8.2002 Репутация: 11 Всего: 36 |
Это один из фундаментальных вопросов работы в ОС Linux. И здесь в полной мере, Вы его не изучите, как бы мы не старались. Поэтому я советую почитать наиболее полно рассматривающую данный вопрос документацию. После 30 минут прочтения, 90% вопросов отпадут сами собой. И, кстати, во многих форумах Вы будете встречать такую аббревиатуру - RTFM... Таков Интернет... -------------------- «It's better to be a pirate than to join the Navy» — Steve Jobs. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: нет Всего: 454 |
Будьте любезны, прочитайте внимательно, до полного понимания, маны по правам на файлы и на каталоги - что дает то или иное право либо его отсутствие. Ничего архисложного там нет. В extended ACL погружаться не требуется - ограничьтесь стандартными атрибутами. После чего Ваш вопрос окажется просто ненужным... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Маринка |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 5.12.2003 Где: Иркутск Репутация: нет Всего: нет |
ага, спасибо. Ничего другого я и не ожидала. Спасибо вам большое за ... консультацию по моему вопросу.
linux forever! )) нет, правда спасибо. Это здорово, что Вы есть!!! |
|||
|
||||
| simanyay |
|
|||
![]() Антон Ковалёв ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2053 Регистрация: 22.8.2002 Репутация: 11 Всего: 36 |
anytime -------------------- «It's better to be a pirate than to join the Navy» — Steve Jobs. |
|||
|
||||
![]()
|
| Правила форума "Linux/UNIX: Oбщие вопросы" | |
|
|
В тему здесь вопросы общие - не привязанные к определенному ПО или дистрибутиву BSD/Linux/UNIX.
За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу). В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим. Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | *NIX системы: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |