Автор Тема: Малко помощ по едно задание  (Прочетена 2422 пъти)

any_y

  • Новаци
  • *
  • Публикации: 1
    • Профил
Здравейте,

Начинаеща съм в Линукса и ми трябва спешно една задача.
Ако има някой желание моля да ми помогне :)

Решението трябва да бъде преносим Bourne shell скрипт.
 Да се напише скрипт, който сканира дадена директория за следните файлове: header.txt, footer.txt и content.txt. Съдържанието на тези файлове трябва да бъде прочетено (игнорирайки всички редове започващи с #) и използвано за генериране на HTML страница със съответните header, footer и content. В тези файлове може да има произволен текст и/или HTML код, но не трябва да има head и body тагове. При сканиране на дадената директория скриптът трябва да сравни датата на последна промяна на header.txt, footer.txt и content.txt с датата на последна промяна на HTML страницата (ако има такава страница). Ако HTML страницата е с по-нова дата тогава не се генерира нова HTML страница.

Благодаря предварително:):):)
Активен

kmilewa

  • Гост
Re: Малко помощ по едно задание
« Отговор #1 -: May 02, 2012, 12:57 »
Здравейте! Нова съм и първо искам да се извиня, ако не поствам темата в правилния раздел, затова ще помоля модераторите да я насочат, ако има някакъв проблем. Имам нужда от помощ. Имам да пиша нещо като домашна работа/задание/ по Линукс, което по думите на преподавателя ми е супер елементарно, обаче аз съм гола вода в тая сфера и изобщо не знам какво трябва да се направи. Затова искам помощта на някой добросъвестен със свободно време, който разбира от линукс да ми надраска пет реда код, който мога да предам. Съответно темите по които трябва да се пише са следните:


1). Да се напише скрипт, който сканира дадена директория за следните файлове: header.txt, footer.txt и content.txt. Съдържанието на тези файлове трябва да бъде прочетено (игнорирайки всички редове започващи с #) и използвано за генериране на HTML страница със съответните header, footer и content. В тези файлове може да има произволен текст и/или HTML код, но не трябва да има head и body тагове. При сканиране на дадената директория скриптът трябва да сравни датата на последна промяна на header.txt, footer.txt и content.txt с датата на последна промяна на HTML страницата (ако има такава страница). Ако HTML страницата е с по-нова дата тогава не се генерира нова HTML страница.

2). Да се напише скрипт, който може да стартира произволно Java приложение. Необходимо е да се поддържат следните опции на командния ред:
-d <y/n> - пуска виртуалната машина в debug режим и ако аргумента е
"y" виртуалната машина е suspend-ната (тоест чака връзка с debugger,
за да започне изпълнението на код)
-b - приложението е в background режим, всички потоци са пренасочени
към /dev/null и скрипта връща контрола над терминала
Скриптът трябва да се опита автоматично да намери JAVA_HOME, ако не е дефинирана. Това става като се потърси java командата в PATH и от пътя към командата се извлече JAVA_HOME

3). Да се напише скрипт, който представлява игра на морски шах. Единственото изискване е скриптът да е интерактивен. Това значи, че докато играта тече скриптит трябва да пита за входни данни от ограчите. Входните данни може да са координатите на следващия ход на играча. Потребителският интерфейс е свободен. Може да се използва read командата, за да се постигне неободимото ниво на интерактивност.

4). Да се напише скрипт, който може да чете големи текстови файлове като съдържанието е под формата на интерактивни страници. Когато скриптът е изпълнен като му е подаден текстов файл като аргумент на стандартния изход трябва да се принтира първа страница (приема се, че една страница е 30 реда). Скриптът трябва да чака за входни данни, които представляват номер на страница. Скриптът приключва, когато от потребителя е посикана последна страница. Може да се ипозлзват командите head/tail, wc и read.

5). Да се напише скрипт, който приема като аргумент файл, чието съдържание представлява списък от пълни пътища до файлове, които трябва да бъдат архивирани в tar архив и компресирани. Резултатът от компресията трябва да бъде копиран през SSH на отдалечена машина. Необходимо е да се поддържат следните опции на командния ред:
-f - файл, от който да се четат пътищата към файловете, който ще се
архивират
-е - ако някой от пътищата не съществува изпълнението на скрипта се
преустановява и се извежда съобщение за грешка; в противен случай
несъществуващ път се игнорира
-g - gzip компресия; в противен случай bzip2
-h - отдалечен хост и потребител във вид: user@host
За копиране през SSH може да се използва scp командата, която
интерактивно очаква въвеждане на парола (приемайки, че автентикацията
е само чрез потребителско име и парола).

6). Да се напише скрипт, който може да изпълнява произволна команда върху всички файлове и/или директории под дадена директория (рекурсивно). Необходимо е да се поддържат следните опции на
командния ред:
-f - командата се изпълнява върху файлове
-d - командата се изпълнява върху директории
-c - команда, която да се изпълни
Пример:
./script.sh -d -f -c touch /home/pesho/public_html
Приема се, че файловете или директориите са безкрайно много, за това
тряба да се използват командите find и xargs

7). Да се напише скрипт, който представлява интерактивен browser за файловата система. При стартиране на скрипта, се принтира съдържанието на текущата директория с всички атрибути на файловете и директориите.
Скриптът чака да му се въведе пълен или релативен път към директория на която да принтира съдържанието или exit за преустановяване на изпълнението.



Извинявам се за дългият пост. Ако се намери някой ще съм му много благодарна! Ако даже е по-удобно може да се свърже с мен на е-mail:
kmilewa@gmail.com :)
Активен

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Re: Малко помощ по едно задание
« Отговор #2 -: May 02, 2012, 13:11 »
Ако даже е по-удобно може да се свърже с мен на е-mail:
kmilewa@gmail.com :)
Само заради това темата може да замине в Кошчето - поне четете Правилата на форума (или се замислете над значението на думата „форум“ и „отворен").

Иначе аз съвсем сериозно предлагам никой да не отговаря в тази тема докато авторката ѝ не посочи откъде са тези задачи (кой университет или училище) и кой е авторът им (т.е. преподавателя). Плюс това, далеч не става дума за 5 реда код. Да не говорим, че може би е редно в такива случаи, в които някой ще спаси з******** на теб и колегите ти, да има минимум почерпка.
Активен

Acho

  • Напреднали
  • *****
  • Публикации: 5296
  • Distribution: Slackware, MikroTik - сървърно
  • Window Manager: console only
    • Профил
    • WWW
Re: Малко помощ по едно задание
« Отговор #3 -: May 02, 2012, 13:33 »
/off

А може И ОЩЕ НЕЩО покрай почерпката. Хахахахахаххаххааааааааааааа
Активен

CPU - Intel Quad-Core Q8400, 2.66 GHz; Fan - Intel Box; MB - Intel G41M-T2; RAM - DDR2-800, Kingston HyperX, 2X2048 MB; VC - onboard, Intel G41 Express Chipset; HDD - Toshiba, 500 GB, SATAII; SB - Realtek HD Audio; DVD-RW - TSSTcorp DVD-RW; LAN - Realtek PCI-E GBE Controller; PSU - Fortron 350 Watt.

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: Малко помощ по едно задание
« Отговор #4 -: May 02, 2012, 13:35 »
Тук явно си имаме цял клас мързеливци. Момичета, кажете на останалите от вашия клас, които мислят да пускат теми тук по въпроса, да си пускат въпросите в тази тема, за да може после по-лесно да ги запокитим към кошчето :D
Сериозно, щом са ви дали това като задание, значи трябва да го знаете. Ако не го знаете, научете го. Дипломи без знания не раздаваме. Ако в процеса на работа се препънете някъде, ще помагаме, но само колкото да се изправите и да продължите нататък ;)
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

kmilewa

  • Гост
Re: Малко помощ по едно задание
« Отговор #5 -: May 02, 2012, 13:36 »
Нямала съм ни най-малко желание да злепоставям някого или да се възползвам от уменията на някого. Съвсем искрено и честно обясних, че не разбирам. Ако някой не желае да ми напише код, ще бъда благодарна поне да ми даде някакви насоки от къде да почна. Не съм някаква лигла. Не смятам да злоупотребявам с уменията на никого. Споменах много ясно, че ако някой ми помогне ще е на добра воля. Не разбирам от Линукс, не смятам и да се занимавам в бъдеще с Линукс, затова и не виждам смисъл да задълбавам по темата. Относно "5-те реда код" искам да кажа, че по думите на асистента задачите са елементарни и се пишат с по пет реда код. (Но пак казвам, нищо не ми е ясно в сферата на Линукс, затова и се обърнах към вас!). Така като гледам е било голяма грешка от моя страна. Живи и здрави и успешен ден. Дано, когато на вас ви се наложи някой да ви помага за нещо да ви помогне така, както вие ми помогнахте. Айде със здраве  :)
Активен

v_badev

  • Напреднали
  • *****
  • Публикации: 1355
    • Профил
Re: Малко помощ по едно задание
« Отговор #6 -: May 02, 2012, 14:05 »
Не разбирам от Линукс, не смятам и да се занимавам в бъдеще с Линукс, затова и не виждам смисъл да задълбавам по темата.
Значи най-честно ще е да получиш двойка.
Активен

bvbfan

  • Напреднали
  • *****
  • Публикации: 1056
  • Distribution: KaOS
  • Window Manager: Plasma 5
    • Профил
Re: Малко помощ по едно задание
« Отговор #7 -: May 02, 2012, 15:30 »
kmilewa, когато учех Линукс в Техническия Университет и аз си мислих, че няма да се занимавам с него, но сега вкъщи от години си го ползвам с удоволствие. Седни напиши няколко реда, кажи си идеята и всички ще помагаме.  ;)
Активен

Acho

  • Напреднали
  • *****
  • Публикации: 5296
  • Distribution: Slackware, MikroTik - сървърно
  • Window Manager: console only
    • Профил
    • WWW
Re: Малко помощ по едно задание
« Отговор #8 -: May 02, 2012, 15:36 »
Ама и обидена, чак си изтри регистрацията КОЛЕЖКАТА. Ей такива, най ги харесвам. Хем калпазани, не си мърдат и пръста, хабер от света на компютрите нямат (за Линукса е ясно, ама то и за другите ОС ще е същото, едва ли там е професионалистка). И утре ще ми се дипломират, ей така - мързелешката. Ами че и обидени - дето не и написаха хората заданието от 5 реда. И как да напише сама ? 100% не знае какво нещо аджеба е това SCRIPT. Аман от калпзани.
Активен

CPU - Intel Quad-Core Q8400, 2.66 GHz; Fan - Intel Box; MB - Intel G41M-T2; RAM - DDR2-800, Kingston HyperX, 2X2048 MB; VC - onboard, Intel G41 Express Chipset; HDD - Toshiba, 500 GB, SATAII; SB - Realtek HD Audio; DVD-RW - TSSTcorp DVD-RW; LAN - Realtek PCI-E GBE Controller; PSU - Fortron 350 Watt.

laskov

  • Напреднали
  • *****
  • Публикации: 3166
    • Профил
Re: Малко помощ по едно задание
« Отговор #9 -: May 02, 2012, 15:46 »
Аз пък бих помолил да спрете да нападате и обиждате момичето (и даже да си коригирате писанията). За мен беше удоволствие да видя такъв чист от грешки и приятен за четене текст.
Трябва да признаете, че даже на radoulov не му тече така гладко bash мисълта :)
Активен

Не си мислете, че понеже Вие мислите правилно, всички мислят като Вас! Затова, когато има избори, идете и гласувайте, за да не сте изненадани после от резултата, и за да не твърди всяка партия, че тя е спечелила, а Б.Б. (С.С., ...) е загубил, а трети да управлява.  Наздраве!  [_]3

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Re: Малко помощ по едно задание
« Отговор #10 -: May 02, 2012, 16:04 »
Аз пък бих помолил да спрете да нападате и обиждате момичето
Аз също ви моля за това, заради Правилата на форума.
Активен

senser

  • Напреднали
  • *****
  • Публикации: 1328
    • Профил
Re: Малко помощ по едно задание
« Отговор #11 -: May 02, 2012, 17:25 »
Добре, да кажем че тук "линуксджиите" може да сме малко крайни в такива мнение, затова предлагам следното:
след като не разбирате от линукс, баш и т.н., и нямате намерение да се занимавате за в бъдеще, напишете заданието на това, което можете и смятате да се занимавате, а аз обещавам да ви го преведа на bash (не претендирам да бъде перфектно, но за без пари толкова).
Активен

chen_dzen

  • Напреднали
  • *****
  • Публикации: 623
  • Distribution: Debian 6.0 Squeeze
  • Window Manager: GNOME
    • Профил
Re: Малко помощ по едно задание
« Отговор #12 -: May 05, 2012, 20:20 »
Добре, да кажем че тук "линуксджиите" може да сме малко крайни в такива мнение, затова предлагам следното:
след като не разбирате от линукс, баш и т.н., и нямате намерение да се занимавате за в бъдеще, напишете заданието на това, което можете и смятате да се занимавате, а аз обещавам да ви го преведа на bash (не претендирам да бъде перфектно, но за без пари толкова).
+1

ха , сега да ви видим , бъдещи инженерчета ! Един ден, може да сте шефове, на този който ви пише скрипта . Това чесно ли ще е  ?  ???

kalata

  • Участници
  • ***
  • Публикации: 6
    • Профил
    • WWW
Re: Малко помощ по едно задание
« Отговор #13 -: Jun 04, 2012, 15:04 »
Код:
#!/bin/bash

#
#6). Да се напише скрипт, който може да изпълнява произволна команда върху
# всички файлове и/или директории под дадена директория (рекурсивно).
# Необходимо е да се поддържат следните опции на командния ред:
# -f - командата се изпълнява върху файлове
# -d - командата се изпълнява върху директории
# -c - команда, която да се изпълни
# Пример:
# ./script.sh -d -f -c touch /home/pesho/public_html
# Приема се, че файловете или директориите са безкрайно много, за това тряба
# да се използват командите find и xargs


#Check for arguments and enable the features
FILE_ENABLE=0
DIR_ENABLE=0
COMMAND=0

usage()
{
cat << EOF
usage: $0 options

./script.sh -d -f -c touch /home/pesho/public_html

OPTIONS:
   -f      Exec on files only
   -d      Exec on directories only
   -c      Command (Ex: touch /home/pesho/public_html)
   -h      This help
EOF
}

if [ $# -lt 3 ] ; then
        echo "Wrong param input, need at least 3 params"
        exit 0;

else
        for arg in "$@"
        do
            case "$arg" in
            -f)    FILE_ENABLE=1
                   EXEC_TYPE="f"
                   shift
                    ;;
            -d)    DIR_ENABLE=1
                   EXEC_TYPE="d"
                   shift
                    ;;
            -c)    COMMAND=1
                   EXEC=$2
                   DIR=$3
                    ;;
            -h)    usage
                   exit 0;
                    ;;
            esac
        done
fi

if [ $COMMAND -eq 0 ]; then
        echo "No -c command specified"
        usage
        exit 1;
fi


if [ $FILE_ENABLE -eq 1 ] && [ $DIR_ENABLE -eq 1 ]; then
                DIR_ENABLE=0
                FILE_ENABLE=0
fi

if [ $FILE_ENABLE -eq 0 ] && [ $DIR_ENABLE -eq 0 ]; then
                echo "find $DIR -maxdepth 1 -exec $EXEC {} \;"
                find $DIR -maxdepth 1 -exec $EXEC {} \;
        else
                echo "find $DIR -maxdepth 1 -type $EXEC_TYPE -exec $EXEC {} \;"
                find $DIR -maxdepth 1 -type $EXEC_TYPE -exec $EXEC {} \;
fi

echo DONE
exit 0;

Ето едно кодче, със сигурност ще ви хареса. Може още малко по - добре да се донаправи, но като за без пари е отлично. Ай като станете шефове може да ме викнете ;)
Активен

Оторен код != затворен свят -> Правете повече секс