Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
1 / 1 / 0
Регистрация: 21.02.2013
Сообщений: 17

Как выполнить действие для каждого файла из списка?

13.05.2013, 15:35. Показов 2338. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте,

есть скрипт питона:
Python
1
2
3
4
5
6
7
8
#!/usr/local/bin/python
import os
os.system('rm -rf object')
for line in file('quest_list'):
    if os.system('./qc ' + line):
        print 'Error occured on compile ' + line
        import sys
        sys.exit(-1)
можно ли реализовать данный скриптик на Shell - ибо устанавливать python на фряшку из-за одного скрипта не очень хочется(
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.05.2013, 15:35
Ответы с готовыми решениями:

TShapeList, выполнить действие для всех элементов списка
Есть список из Shape TShapeList = specialize TFPGList<TShape>; В него добавлены Shape1, Shape2, Shape3 Как по нажатию на кнопку сделать...

Выполнить для каждого найденного файла поиск в нем подстроки, заданной пользователем
Рекурсивно обойти поддерево файловой системы,заданное пользователем,выполнить для каждого найденного файла поиск в нем подстроки,заданной...

Для каждого бинарного дерева выполнить преобразование дерева в список, результат вывести в виде списка списков
Объясните почему не работает, задание было таким " Дан список, элементы которого — непустые бинарные деревья с числами в качестве...

9
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
14.05.2013, 02:33
Цитата Сообщение от valkiriy Посмотреть сообщение
можно ли реализовать данный скриптик на Shell
можно, но пиши задание - скрипт на питоне может не быть оптимальным
0
1 / 1 / 0
Регистрация: 21.02.2013
Сообщений: 17
18.05.2013, 01:38  [ТС]
то есть получится примерно так:
Bash
1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh
cd /путь
rm -rf object
for line in quest_list
    do 
        if [./qc + line];
            then 
                echo "Error occured on compile " + line
                exit
        fi
    done
конечно не проверял, возможно ошибки в синтаксисе ибо, shell в принципе не знаю - кому не сложно поправьте, т.к. очень хочется обойтись шелом
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
18.05.2013, 01:50
Цитата Сообщение от valkiriy Посмотреть сообщение
т.к. очень хочется обойтись шелом
напиши задание
0
1 / 1 / 0
Регистрация: 21.02.2013
Сообщений: 17
18.05.2013, 02:00  [ТС]
Суть в том что в директории есть lua-скрипты, директория object(обработанные скрипты), обработчик (qc), Quest_list(файл со списком файлов со скриптами отправляемых на обработку)...

скрипт читает название файла в 1 строчке Quest_list и отправляет его на обработчик (qc) который в свою очередь сохраняет обработанный скрипт в директорию object
далее:
аналогично 2, 3, 4... строчки из Quest_list
пока не обработает все файлы из списка или не выдаст ошибку на определенном файле
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
18.05.2013, 11:07
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[guest@localhost obr]$ ls
obr.sh  qc  quest_list
[guest@localhost obr]$ cat quest_list 
script 1
script 2
script 3
[guest@localhost obr]$ ./obr.sh
qc <script 1>
qc <script 2>
qc <script 3>
[guest@localhost obr]$ ls
object  obr.sh  qc  quest_list
[guest@localhost obr]$ ls object/
script 1.obj  script 2.obj  script 3.obj
[guest@localhost obr]$
Вложения
Тип файла: zip obr.zip (1.5 Кб, 13 просмотров)
Тип файла: zip obr_prev.zip (1.5 Кб, 6 просмотров)
1
1 / 1 / 0
Регистрация: 21.02.2013
Сообщений: 17
18.05.2013, 14:08  [ТС]
благодарю) скрипт работает безупречно)
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
18.05.2013, 14:18
не, там опечатку исправил
0
1 / 1 / 0
Регистрация: 21.02.2013
Сообщений: 17
18.05.2013, 15:51  [ТС]
да меня интересовал только obr.sh, который работает безупречно) остальное так же выполняет действия как при питоне, т.к. qc - является скомпилированным приложением) все таки очень благодарен за рабочий скрипт ибо не мог понять какой у шела синтаксис (на курсах как-то забил на командную строку unix-систем - теперь вот приходится людей отвлекать)
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
19.05.2013, 00:53
Цитата Сообщение от valkiriy Посмотреть сообщение
да меня интересовал только obr.sh
ну, в нём и была опечатка
остальное для отладки скрипта сделано
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.05.2013, 00:53
Помогаю со студенческими работами здесь

Как выполнить sql запрос для каждого элемента массива php?
Я парсю некоторые данные с сервера и записываю массив данных в переменную $table. Есть запрос: SELECT MAX(`Id`) FROM `tt` WHERE...

Для матрицы А размера n x m выполнить следующее действие
Добрый день! Камрады, пожалуйста, помогите решить две задачи: 1) Даны N точек на плоскости. Найти среди них точки, являющиеся...

Как выполнить действие?
Представить в виде алгоритма решение задачи. Имеются три сосуда емко- стью 8, 5 и 3 л. Первый из них наполнен водой. Как разлить воду в...

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

Как выполнить действие по нажатию кнопки?
Это возможно? При нажатии на кнопку нужно выполнить: public void CreateUserAccount(string login, string password, string...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru