Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, написать shell-процедуру / 20 сообщений из 20, страница 1 из 1
22.05.2006, 16:11:56
    #33743029
Njuta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, написать shell-процедуру
Задание заключается в следующем:

Написать shell-процедуру, которая выполняет действия:
- вводит символьную строку, содержащую маршрутное имя некоторого файла;
- проверяет введенное маршрутное имя, если оно начинается с символа /, на совпадение его первой части с маршрутным именем домашнего каталога пользователя;
- если введенное маршрутное имя содержит маршрутное имя домашнего каталога или является относительным, то проверяет существование указанного первым параметром файла, в противном случае выводит на экран сообщение об ошибке;
- если файл существует, то выводит на экран его содержимое в обратном порядке;
- если файл не существует, то создает его и записывает в него строку, передаваемую в качестве параметра, в обратном порядке.
...
Рейтинг: 0 / 0
22.05.2006, 17:50:00
    #33743445
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, написать shell-процедуру
домашнее задание что ли? Бессмысслица какая-то

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
#!/bin/sh

filename=$ 1 
paramstr=$ 2 
flag= 0 

read path

echo $path | grep -v '^\/' >/dev/null &&
{
flag= 1 
} ||
{
expr $path : "^$HOME" >/dev/null  && flag= 1 
}

[ "$flag" -eq  1  ] && {
 if [ -f "$filename" ] ;then
  cat $filename | rev
 else
  echo $paramstr | rev > $filename
 fi
} ||
echo "error"
...
Рейтинг: 0 / 0
23.05.2006, 16:26:44
    #33746170
Njuta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, написать shell-процедуру
Спасибо огромное :)
это лабораторка такая
а насчет бессмыслицы, это точно, я 2 недели пыталась эту процедуру написать
...
Рейтинг: 0 / 0
24.05.2006, 15:09:27
    #33748759
Njuta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, написать shell-процедуру
она в любом случае выводит "error" :(
...
Рейтинг: 0 / 0
24.05.2006, 15:11:47
    #33748777
Njuta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, написать shell-процедуру
она в любом случае выводит "error" :(
...
Рейтинг: 0 / 0
24.05.2006, 15:21:42
    #33748829
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, написать shell-процедуру
странно, я конечно быстро ее писал, но проверил.

Как запускаем?

./lab.sh filename string_to_reverse


потом вводится путь
...
Рейтинг: 0 / 0
24.05.2006, 15:49:03
    #33748949
Njuta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, написать shell-процедуру
я запускаю
sh <имя процедуры>

а теперь еще и ошибки выдаются в:
{expr $path : "^$HOME" >/dev/null && flag=1
}

а именно: команда '{expr' не найдена и синтаксическая ошибка возле '}'
...
Рейтинг: 0 / 0
24.05.2006, 16:02:47
    #33749018
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, написать shell-процедуру
конечно. ведь надо аккуратно

{
expr $path : "^$HOME" >/dev/null && flag=1
}

а Вы убрали перевод строки. Получился какой-то {expr и конечно такой команды нету.
...
Рейтинг: 0 / 0
24.05.2006, 16:13:01
    #33749063
Njuta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, написать shell-процедуру
точно, я не заметила

только теперь проблема в следующем:
я ввожу имя домашнего каталога, а выводится:

"expr: предупреждение: непереносимое BRE: `^HOME`: использование `^` как первого символа BRE (базового регулярного выражения) напереносимо; этот символ будет игнорирован
error"
...
Рейтинг: 0 / 0
24.05.2006, 16:49:12
    #33749225
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, написать shell-процедуру
будет игнорирован - ничего страшного. Но если не нравится предупреждение- можно убрать символ ^ просто.
По-моему expr ищет все равно от начала.

а вот то что выводится error странно.
А если не имя дом каталога вводить а относительный пуить - просто строку, не начинающуюся с /

т.е. как в условии описано
...
Рейтинг: 0 / 0
24.05.2006, 16:52:36
    #33749239
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, написать shell-процедуру
ну или можно строчку

expr $path : "^$HOME" >/dev/null && flag=1

заменить на

echo $path | grep "^$HOME" > /dev/null && flag=1

если там expr такой капризный. Это одно и то же.
...
Рейтинг: 0 / 0
24.05.2006, 16:56:17
    #33749254
Njuta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, написать shell-процедуру
тогда в строке

echo $paramstr | rev > $filename

выводится сообщение "ambiguous redirect", а в конце опять же error
...
Рейтинг: 0 / 0
24.05.2006, 17:35:24
    #33749406
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, написать shell-процедуру
такое сообщение появится если имя файла пустое.

вообще конечно надо было проверку сделать.

а случидлсь это из-за того что видимо Вы без параметров запустили видимо

по условию нужны 2 параметра
...
Рейтинг: 0 / 0
24.05.2006, 17:40:39
    #33749426
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, написать shell-процедуру
можно в самое начало скрипта вставить такой код, проверяющий число параметров

Код: plaintext
1.
2.
3.
4.
5.
[ $# -eq  2  ] || {
echo 'invalid param number'
exit  1 
}

...
Рейтинг: 0 / 0
25.05.2006, 08:58:25
    #33750201
Njuta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, написать shell-процедуру
я наверное чего-то не понимаю с этими параметрами...
получается, что в любом случае выводится собщение 'invalid param number'
...
Рейтинг: 0 / 0
25.05.2006, 09:27:58
    #33750269
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, написать shell-процедуру
начинаем все сначала :-)

Вот наш скрипт

cat lab1.sh

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
#!/bin/sh

[ "$#" -eq  2  ] || {
echo 'invalid param number'
exit  1 
}


filename=$ 1 
paramstr=$ 2 
flag= 0 

read path

echo $path | grep -v '^\/' >/dev/null &&
{
flag= 1 
} ||
{
echo $path | grep "^$HOME" > /dev/null && flag= 1 
}

[ "$flag" -eq  1  ] && {
 if [ -f "$filename" ] ;then
  cat $filename | rev
 else
  echo $paramstr | rev > $filename
 fi
} ||
echo "error"

продолжим - сделаем исполняемым и повызываем с двумя параметрами:

-bash-2.05b$ chmod 755 lab1.sh

-bash-2.05b$ ./lab1.sh dedede
invalid param number

-bash-2.05b$ ./lab1.sh dedede fohha
hello

-bash-2.05b$ ./lab1.sh dedede2 fohha2
/d/fffd
error

-bash-2.05b$ ./lab1.sh dedede3 fohha3
/home/username/ddd

-bash-2.05b$ ls
dedede dedede3 lab1.sh


все отлично.
...
Рейтинг: 0 / 0
25.05.2006, 09:58:59
    #33750365
Njuta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, написать shell-процедуру
действительно все отлично :)
только я не совсем поняла одну вещь:

я ввожу 2 параметра, как у Вас написано, а затем на следующей строке маршрутное имя;
когда я просматриваю содержимое файла, указанного 1-ым параметром, выводится 2-ой параметр в обратном порядке

а маршрутное имя не должно выводится?
...
Рейтинг: 0 / 0
25.05.2006, 10:21:13
    #33750435
--null--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, написать shell-процедуру
не должно, потому что в Вашем задании ничего про это не написано.

- если файл существует, то выводит на экран его содержимое в обратном порядке;
- если файл не существует, то создает его и записывает в него строку, передаваемую в качестве параметра, в обратном порядке.
...
Рейтинг: 0 / 0
25.05.2006, 12:12:33
    #33750930
Njuta
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, написать shell-процедуру
понятно
спасибо большое за помощь
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
25.05.2009, 09:01:56
    #36004608
CrazyGooD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите, пожалуйста, написать shell-процедуру
Написать shell - процедуру, которая выполняет действия:
в заданном первым параметром каталоге находит все простые файлы, число ссылок на которые максимально, и удаляет их;
удаляет все пустые каталоги;
выдает на экран сообщения о каждом удаленном файле и каталоге.
Вариант 20
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, написать shell-процедуру / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]