PDA

Показать полную графическую версию : На языке Shell разработать программу.


MVA
02-05-2010, 10:35
Господа, доброго времени суток.
Необходимо разработать программу, копирующую произвольное число файлов заданных аргументами из текущего каталога в указываемый каталог.
В разработке я обошлась одной строкой, а именно:
cp $1 $2
Соответственно проверяющему моё "решение" не понравилось.
Имеется подобное задание, а именно: "Скопировать из текущего каталога на дискету ряд текстовых файлов с проверкой записи и удалением файла" и соответственно сама программа, написанная под DOS, а именно:
:loop
copy %1.txt A:/V
pause
del %1.txt
shift
if not %1.==. goto loop
Её нужно переделать под UNIX, и поверку файлов написать вначале.

Желающим помочь я буду рада. Вам необходимо только переделать код и проверить его на выполнение.

ruslandh
02-05-2010, 10:58
#!/bin/bash

for i in $*
do
mv $i /mnt/floppy
done



Непонятно что значит проверка.

Можено конечно поставить cp и rm, но самой проверки я и в досовском скрипте не вижу

Ещё красивее :
for i in $*
do
rsync $i /mnt/floppy/$i
rm $i
done

MVA
02-05-2010, 11:18
Непонятно что значит проверка.
Можено конечно поставить cp и rm, но самой проверки я и в досовском скрипте не вижу »
Условие и пример давал преподаватель.

проверка : если не равно пустому значению, то...
if not %1.==. goto loop
разве нет?

//Маленькое примечание: без лишних сложностей, для первого курса все-таки.

ruslandh
02-05-2010, 11:59
Файл может скопироваться частично, с ошибками и т.п (Например, если места на диске нет).

if not %1.==. goto loop - насколько я понял проверяет не указан-ли ещё файл в списке. Впрочем я могу ошибаться в синтаксисе досовских скриптоа.

MVA
02-05-2010, 14:54
if not %1.==. goto loop - насколько я понял проверяет не указан-ли ещё файл в списке. Впрочем я могу ошибаться в синтаксисе досовских скриптоа. »
иная запись выглядит так, что то же самое : if not (%1)==( ) goto loop
В общем спасибо за отзывчивость и оказанную помощь. Я Вам признательна.




© OSzone.net 2001-2012