запустите скрипт удара из другого сценария и перенаправьте его вывод

Привет все я должен сделать программу.. Я буду действительно краток для объяснения этого... И шляпа, которую я уже сделал и что я должен сделать...

Просто, я должен сделать "средство моделирования" в Bash, которые выполняют упражнения студентов и проверяют, корректны ли они... для каждого осуществления, я должен вычислить счет и сказать, сдал ли студент экзамен или нет...

Я сделал почти все... Я думаю, что пропускаю просто некоторую строку кода для записи.. но я думаю, что они являются самыми важными также... :(

Мой сценарий является TEST.SH, и я должен выполнить осуществление студента.. осуществление является сценарием ELABORATO.SH... Теперь, у меня могут быть некоторые сценарии:

  1. ELABORATO.SH ждут во входе как параметр некоторые значения;
  2. ELABORATO.SH ждут во входе от stdin с клавиатуры;
  3. Запись ELABORATO.SH производится в файле/FIFO/и т.д..;

  1. Сначала одна точка, которую действительно просто разрешить..., заражает от моего TEST.SH, который я называю ELABORATO.SH таким образом:

    . ELABORATO.SH param1 param2 param3;
    

    Второй и третий Это более сложно мне..

  2. Я должен считать из файла строку (и это в порядке), и передайте эту строку ELABORATO.SH поскольку строка была от stdin.

  3. Я должен создать файл с выводом ELABORATO.SH... так, например, если ELABORATO.SH произведите файл (я не знаю название выходного файла), я должен произвести файл также в другом каталоге... Как я могу сделать?

0
задан 26 August 2014 в 14:30

1 ответ

Это подозрительно походит на присвоение домашней работы*, но здесь мы идем.

  1. Почему Вы получили бы ELABORATO.SH сценарий? Если Вы делаете и это имеет exit оператор или ошибки, Ваш TEST.SH делает то же. Я не думаю, что это - то, что Вы хотите. Я просто запустил бы скрипт:

    bash ELABORATO.SH param1 param2
    
  2. Вы думали о перенаправлении его входа?

    bash ELABORATO.SH param1 param2 < INPUT_FILE
    
  3. Получать вывод ELABORATO.SH, Ну, в общем, перенаправление, не просто кажется, сделано для этого?

    bash ELABORATO.SH param1 param2 < INPUT_FILE > OUTPUT_FILE
    

Обнаружение, который файлы ELABORATO.SH записи нетривиальны. (Боковая линия: если Вы не знаете его выходных файлов, то, как они могли относиться к вычислениям счета ELABORATO.SH? Почему беспокойство для ровного перемещения их?)

Так или иначе здесь мы идем. Следующий конвейер перечисляет файлы, созданные ELABORATO.SH:

strace bash ELABORATO.SH params < INPUT_FILE 2>&1 > OUTPUT_FILE \
    | grep '^open(.*O_CREAT' | cut -d\" -f 2  

Затем для перемещения их в другое место Вы могли сделать:

for f in $(
    strace bash ELABORATO.SH params < INPUT_FILE 2>&1 > OUTPUT_FILE 
       | grep '^open(.*O_CREAT' | cut -d\" -f 2) 
do
    mv "$f" /path/to/elsewhere
done

*) рекомендуйте дружелюбным людям в AskUbuntu к Вашему супервизору.

2
ответ дан 7 October 2019 в 05:03

Другие вопросы по тегам:

Похожие вопросы: