LinuxForum.Fans
Тема

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

Автор: max20_12 16 сообщений 6215 просмотров
#253728

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. Каталоги, в которых выполняются преобразования, задаются через параметры.

#253743

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

+

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 - поддерживаю.

#253745

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

#253746

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

#253750

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

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

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

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

#253801
"gramozeka" написал:
или монетизируй в личку

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

#267408

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

#267409

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

text

rm -f FILE
#267411

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

#267412

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

#267413

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

#267415

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

#267420
text
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
Войдите или зарегистрируйтесь, чтобы ответить.