Начало работы с сценариями оболочки? - PullRequest
0 голосов
/ 01 декабря 2008

Я не знаком со сценариями оболочки, поэтому не уверен, как это сделать или возможно ли это. Если вы можете дать мне ссылки или советы, это было бы здорово.

Что я хочу сделать, это:

  • Создать файл, простой текстовый файл Пример:

    param1 (RANDOMVALUE)

    Где randomvalue - генерируемое случайное число.

  • запустить программу с тем файлом, который мы только что создали, и вывести в файл

    . / Файл программы был создан> A

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

  • запустите другую программу с файлом, который мы только что создали, программа уже существует и поместите его в файл

. / Другой файл программы был создан> B

  • запустить команду diff на A, B

    diff A B

Показать, что возвращает diff ...

Спасибо

[Edit] Я использую оболочку: tcsh

Ответы [ 3 ]

3 голосов
/ 01 декабря 2008

Я не уверен насчет функции генерации случайного числа в tcsh. Однако в более распространенной оболочке, такой как BASH, ссылки на переменную $RANDOM генерируют случайные числа.

Итак, в вашем сценарии оболочки (здесь BASH сценарий оболочки) содержимое будет:

#Pick the first argument to the call as the file name
FILE_NAME=shift
echo "param1 $RANDOM" > $FILE_NAME
./program $FILE_NAME > $FILE1
./Anotherprogram $FILE_NAME > $FILE2
diff $FILE1 $FILE2
3 голосов
/ 01 декабря 2008

Вы уже почти написали сценарий. Единственная пропущенная вещь - это случайное число; Я сделаю это с Perl. Вот быстрое и грязное решение в sh (или bash; я предполагаю, что вы работаете в системе Linux / Unix):

#!/bin/sh
perl -e 'print "TheWord (", int(rand(1000)), ")\n"' > tempfile
./program tempfile > A
./Anotherprogram tempfile > B
# rm tempfile  # this would delete 'tempfile' if uncommented
diff A B

Теперь сохраните это в файле (скажем, script.sh) и выполните в оболочке:

chmod +x script.sh

, чтобы сделать его исполняемым, и

./script.sh

чтобы запустить его.

0 голосов
/ 01 декабря 2008

Сценарии оболочки в основном сводятся воедино различными программами, которые выполняют свою работу. Есть много программ, которые выполняют только одну простую вещь и могут быть объединены для выполнения более масштабных задач, о которых вы узнаете, попав в мир сценариев оболочки. Пример большого скрипта оболочки: скрипт Perl Configure . В первом бите вы видите (вместе с некоторыми юмористическими комментариями) cat, true, sh, rm, test, sed, uname и grep.

...