1

4. Перед выполнением задания создать в своем каталоге набор файлов с расширениями *.с, *.cpp, *.h и *.txt.
4.1 Используя цикл for, распечатать из текущего каталога содержимое всех файлов с расширениями *.c и *.cpp, в именах которых присутствуют цифры. Перед содержимым каждого файла напечатать его имя.
4.2 Используя цикл for, создать в каталоге "./links" символические ссылки на все файлы текущего каталога с добавлением к имени файла ".link".
4.3 Синхронизировать содержимое каталогов "./" и "./backup" путем создания символических ссылок на недостающие файлы.
4.4 Вывести для определенных каталогов имена текстовых файлов, для которых разрешена запись. Имена каталогов задаются через параметры.
4.5 Проверить существует ли в каталогах, заданных через параметры при вызове сценарии, файл. Имя файла вводится с клавиатуры.
4.6 Проверить работают ли в настоящее время в системе пользователи, имена которых заданы списком параметров.
4.7 Вывести для каталога (имя каталога вводится с клавиатуры) список файлов, для которых разрешены исполнение и чтение.
4.8 Создать резервные копии текстовых файлов, имеющих атрибут разрешения для записи.
4.9 Копировать в каталог, имя которого вводится с клавиатуры, файлы, у которых имя начинается с букв "a" или "z", если эти файлы не являются каталогами.
4.10 Проверить имеются ли в каталогах, имена которых определяются параметрами сценария, файлы, являющиеся исходными текстами программ.
4.11 Проверить установлены ли атрибуты разрешения чтения и исполнения для файлов, имена которых перечисляются в списке параметров при вызове сценария.
4.12 Преобразовать имена файлов с расширением h в имена с расширением hpp. Каталоги, в которых выполняются преобразования, задаются через параметры.

2

Внимание товарищи студенты и все остальные учащиеся

95% процентов проблем находятся между клавиатурой и стулом.

3

помогите написать не очень сложный скрипт

+

4. Перед выполнением задания создать в своем каталоге набор файлов с расширениями *.с, *.cpp, *.h и *.txt.
4.1 Используя цикл for, распечатать из текущего каталога содержимое всех файлов с расширениями *.c и *.cpp, в именах которых присутствуют цифры. Перед содержимым каждого файла напечатать его имя.
4.2 Используя цикл for, создать в каталоге "./links" символические ссылки на все файлы текущего каталога с добавлением к имени файла ".link".
4.3 Синхронизировать содержимое каталогов "./" и "./backup" путем создания символических ссылок на недостающие файлы.
4.4 Вывести для определенных каталогов имена текстовых файлов, для которых разрешена запись. Имена каталогов задаются через параметры.
4.5 Проверить существует ли в каталогах, заданных через параметры при вызове сценарии, файл. Имя файла вводится с клавиатуры.
4.6 Проверить работают ли в настоящее время в системе пользователи, имена которых заданы списком параметров.
4.7 Вывести для каталога (имя каталога вводится с клавиатуры) список файлов, для которых разрешены исполнение и чтение.
4.8 Создать резервные копии текстовых файлов, имеющих атрибут разрешения для записи.
4.9 Копировать в каталог, имя которого вводится с клавиатуры, файлы, у которых имя начинается с букв "a" или "z", если эти файлы не являются каталогами.
4.10 Проверить имеются ли в каталогах, имена которых определяются параметрами сценария, файлы, являющиеся исходными текстами программ.
4.11 Проверить установлены ли атрибуты разрешения чтения и исполнения для файлов, имена которых перечисляются в списке параметров при вызове сценария.
4.12 Преобразовать имена файлов с расширением h в имена с расширением hpp. Каталоги, в которых выполняются преобразования, задаются через параметры.

инопланетянин detected ...
Fat-Zer - поддерживаю.

" si contuderis stultum in pila quasi tisanas feriente desuper pilo non auferetur ab eo stultitia eius " © Proverbs 27:22

4

Да я прочитал но нам преподаватель ни дал литературу ни материал так что не могу выложить даже то с чего начать....если можете напишите  цикл  для задания 4.1

5

судя по всему не сложный но только незнаю с чего начать даже литературы по скриптам нет

6 (23.05.2012 21:26:05 отредактировано yars)

Начинать надо с BASH Scripting Guide

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Slackware64-current/Xfce/Lenovo G580

7

max20.12 пишет:

судя по всему не сложный но только незнаю с чего начать даже литературы по скриптам нет

ABS наше всё: http://www.opennet.ru/docs/RUS/bash_scripting_guide/

95% процентов проблем находятся между клавиатурой и стулом.

8

max20.12 пишет:

Да я прочитал но нам преподаватель ни дал литературу ни материал так что не могу выложить даже то с чего начать....если можете напишите  цикл  для задания 4.1

shopt -s nullglob
for file in *
do
  ls -l "$file" &> /dev/null
done
for file in *[c,cpp]
do
  echo "файл \"$file\"".
done
exit 0

заготовка, как делать выборку по шаблону додумывай сам(читай, ссылки дали) или монетизируй в личку, тут на форуме полно народу кто может это сделать за вознаграждение.

" si contuderis stultum in pila quasi tisanas feriente desuper pilo non auferetur ab eo stultitia eius " © Proverbs 27:22

9 (24.05.2012 01:01:15 отредактировано zenon)

gramozeka пишет:

или монетизируй в личку

А я всё думал, как бы так сказать подобное, но не в лоб. + ab

История показывает, что во всем новом обычно кроется какой-то подвох.
Классическая ошибка, которую совершают проектировщики
абсолютно надежных систем, - недооценка изобретательности клинических идиотов.

10

решил не создавать отдельную тему. Подскажите как заставить скрипт .sh выполнить действие, а именно ввести y и нажать enter. Т.е. происходит запрос на удаление файла в моём случае, где нужно согласиться, либо не согласиться, после чего нужно продолжить выполнение скрипта.

11

sh00, скрипт интерактивный или нужно, чтобы он в любом случае удалил файл?
Тогда проще

rm -f FILE
Был, был и весь вышел...

12

...либо man yes, в особо «тяжёлых» случаях — man expect.

Был, был и весь вышел...

13 (01.08.2012 22:42:45 отредактировано sh00)

мне предлагают ввести n или y и нажать enter. Всё делается в консоли. Обычный запрос на подтверждение об удалении.
UPD удаление производится спец.утилитой, т.е. вариант rm -rf не подойдет

14

Повторю вопрос: скрипт интерактивный, то есть решение принимает человек, либо ответы известны заранее? Тогда можно использовать команду yes.

Был, был и весь вышел...

15

интерактивный. Решение принимается человеком.

16

lupo@gentoo-laptop /tmp % cat test.sh
#!/bin/bash
echo "Скажите Да или Нет"
read ANSWER
case $ANSWER in
    y|Y) echo "Вы согласились"
        ;;
    n|N) echo "Вы отказались"
        ;;
    *) echo "Введите буквы Y или N в любом регистре"
    ;;
esac
Был, был и весь вышел...