Автор Тема: Bash script  (Прочетена 8570 пъти)

makeme

  • Напреднали
  • *****
  • Публикации: 893
  • Distribution: Many
  • Window Manager: KDE
    • Профил
Re: Bash script
« Отговор #45 -: Apr 02, 2018, 21:14 »
не става утре ще го пробвам на  друг комп щото аз мисля че това е от това, че съм със stackware
Да не си го писал на някакъв уиндоус тоя скрипт и сега да имаш някакви лоши символи в него или в името на файла ?

ПП: Ако не стане и утре: Дай малко повече информация за тези скриптове. Имената на български ли са? В името има ли интервали?
« Последна редакция: Apr 02, 2018, 21:25 от makeme »
Активен

Distributions:  UbuntuMate; Kubuntu; CentOS; Kali; Raspberry Pi OS ...

petar787

  • Напреднали
  • *****
  • Публикации: 15
    • Профил
Re: Bash script
« Отговор #46 -: Apr 02, 2018, 21:34 »
утре ще пробвам, но няма нищо на български
Активен

makeme

  • Напреднали
  • *****
  • Публикации: 893
  • Distribution: Many
  • Window Manager: KDE
    • Профил
Re: Bash script
« Отговор #47 -: Apr 02, 2018, 21:39 »
утре ще пробвам, но няма нищо на български

Ясно. Потвърждавам ти, че при мен целия ти скрипт работи на Ubuntu mate 16.04.

Info:
Цитат
$~# env | grep SHELL
SHELL=/bin/bash
$~# which bash
/bin/bash
$~# bash --version
GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu)
Активен

Distributions:  UbuntuMate; Kubuntu; CentOS; Kali; Raspberry Pi OS ...

makeme

  • Напреднали
  • *****
  • Публикации: 893
  • Distribution: Many
  • Window Manager: KDE
    • Профил
Re: Bash script
« Отговор #48 -: Apr 02, 2018, 21:59 »
Успях да репродуцирам грешката ти :)

Във скрипта, който пуснах, махнах "/" от "#!/bin/bash"

Код
GeSHi (Bash):
  1. #!bin/bash

и получих същото:
Код
GeSHi (Bash):
  1. $~# ./filetest3: ./asd.sh: bin/bash: bad interpreter: No such file or directory

Варианта е или да имаш нещо объркано със средата, или и ти да си го изял в другия скрипт.
« Последна редакция: Apr 02, 2018, 22:01 от makeme »
Активен

Distributions:  UbuntuMate; Kubuntu; CentOS; Kali; Raspberry Pi OS ...

petar787

  • Напреднали
  • *****
  • Публикации: 15
    • Профил
Re: Bash script
« Отговор #49 -: Apr 03, 2018, 18:07 »
Пробвах го и тръгна на другият комп, явно нещо от мойта среда е. Искам да попитам дали някой знае как трябва да се направи тази задача: Да се създадат три процеса, базирани на C програма комуникиращи през обща памет с размер едно цяло число. Първият процес генерира числа от 1 до 100 и ги записва в общата памет. Останалите процеси четат от общата памет като формират съответно сумите на четните и нечетните числа и ги визуализират.
Активен

Ali Nebi

  • Напреднали
  • *****
  • Публикации: 394
  • Distribution: Centos, Debian, Fedora, Ubuntu
  • Window Manager: Gnome
    • Профил
Re: Bash script
« Отговор #50 -: Apr 03, 2018, 18:57 »
Здравей,

Когато пишеш шел скрипт може да правиш дебъг като ползваш кода по-долу:

Код:
#!/bin/bash

# turn on debug mode
set -x

...

Другият вариянт е да стартираш скрипта така: /bin/bash -x /path/to/script/filename

Така системата ще ти дава повече информация какво точно се случва на всеки един ред от изпълнението на скрипта.

https://www.cyberciti.biz/tips/debugging-shell-script.html
Активен

Не се задоволявай да бъдеш дим, когато можеш да бъдеш огън!

petar787

  • Напреднали
  • *****
  • Публикации: 15
    • Профил
Re: Bash script
« Отговор #51 -: Apr 03, 2018, 20:59 »
Аз го оправих това, но сега имам проблем с тази задача: Да се създадат три процеса, базирани на C програма комуникиращи през обща памет с размер едно цяло число. Първият процес генерира числа от 1 до 100 и ги записва в общата памет. Останалите процеси четат от общата памет като формират съответно сумите на четните и нечетните числа и ги визуализират.

Не знам как се работи с тази обща памет, изобщо тази задача ми е мъгла, ако някой може да помогне
Активен

Ali Nebi

  • Напреднали
  • *****
  • Публикации: 394
  • Distribution: Centos, Debian, Fedora, Ubuntu
  • Window Manager: Gnome
    • Профил
Re: Bash script
« Отговор #52 -: Apr 03, 2018, 21:52 »
Вероятно става въпрос за споделена памет: https://stackoverflow.com/questions/5656530/how-to-use-shared-memory-with-linux-in-c

Най-добре е да се поразровиш из нета. Там може да намериш информация за 99% от нещата. Опитваш се да разбереш кое какво значи, как работи и ако имаш конкретен проблем тогава питаш. Това е много по ефективен начин  наистина да научиш нещо. Ако ти казваме готови решения, то вероятно нищо няма да нучиш.

Активен

Не се задоволявай да бъдеш дим, когато можеш да бъдеш огън!

remotexx

  • Напреднали
  • *****
  • Публикации: 1341
    • Профил
Re: Bash script
« Отговор #53 -: Apr 04, 2018, 01:45 »
Ааах, микро мениджмънт... "любимото" ми
Ама той даскала, даскала е за е... Ъъъ таковане

По начало задачата е кофти дефинирана... Би трябвало споделената памет да е за 101 цели числа, 100 които ще се обработват и 1 за флаг, че буфера е готов за обработка, като след обработката му флага се занулява. В идеалния вариант ще трябват даже 2 или N по един за всеки четец, че чукча писател да не изпраска следващия буфер преди всички читатели да са обработили предходния.
Така смотано дефинирана задачата има само едно смотано решение, чукча пише едно число и чака.. късмет че всяко едно число се обработва или само от единия или само от другия четец, и четеца който събира този вид числа го прочита и го събира и записва в същия буфер същото число но с отрицателен знак, тогава пак чукча се задейства да генерира следващото число.... Много кофти решение, но единственото работещо при така поставената задача
И теми за размисъл
Ами ако имаше числа които не се обработват от никой четец или пък и от двата напр. Първия обработва числа които се делат на 3, втория на 5 (и евентуално трети четец за числа дето се делат и на 3 и на 5) - Няма как да се мине без флаг за всеки четец, кога е приключил с обработката, че писача да запише новия буфер, и интересния вариант напр. С числото 2 никой няма да го обработи и ще почне голямото чакане, затова се работи с по големи буфери.

Обик. При подобни ситуации по по най важен е избора на протокол за комуникация а не конкретната реализация и няма значение дали ще е споделена памет или интернет връзка и т.п. и не кьоравия даскал да се прави на микро меринджей и на най великия и да казва НЕ през една клетка от паметта ще го правите само, щото обик. Микро мениджмънта води до макро осирации където накрая меринджейте се опитват да излязат сухи от водата с .... Ама аз му казах какво точно да направи ама той... Калпава реализация, като услужливо пропускат факта че при микро мениджмънт меринджея казва не само какво ами и как да се направи.


Та с две думи, само с една клетка е грешно да прехвърляш много данни, ..ама задание, какво да го правиш.
Надявам се да съм помогнал... Поне малко.

П.П. ако го видиш  :P питай го даскала как аджеба да побереш 100 цели числа в  обща памет с размер едно цяло число?
« Последна редакция: Apr 04, 2018, 02:02 от remotexx »
Активен

4096bits

  • Напреднали
  • *****
  • Публикации: 4238
    • Профил
Re: Bash script
« Отговор #54 -: Apr 04, 2018, 06:55 »
E, в условието е казано, че първия процес генерира и запсива сто числа в споделената памет. Не е казано, че трябва да запише всички сто там. Както казваш, но дори само едно число може да е.
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

remotexx

  • Напреднали
  • *****
  • Публикации: 1341
    • Профил
Re: Bash script
« Отговор #55 -: Apr 04, 2018, 16:32 »
E, в условието е казано, че първия процес генерира и запсива сто числа в споделената памет. Не е казано, че трябва да запише всички сто там. Както казваш, но дори само едно число може да е.

В условието е казано числа и
през обща памет с размер едно цяло число
И нищо за протокол през който да се прехвърлят през "тясното място", споделената памет само предоставя един общ буфер, в който и двата процеса могат да четат и/ли пишат, и толкоз.

Като ще е микро мениджмънт да е докрай, като ще им задават наклона на оная работа, т.е. размера на буфера, нека им каже и к'ъв протокол да ползват, ... Или да забрави за размера и само да каже че иска да е през споделена памет, нека децата сами си решат колко да им е голям.. буфера.
« Последна редакция: Apr 05, 2018, 02:34 от remotexx »
Активен

4096bits

  • Напреднали
  • *****
  • Публикации: 4238
    • Профил
Re: Bash script
« Отговор #56 -: Apr 04, 2018, 20:32 »
Навсякъде едно и също. Тия професори са за бой.
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

sudo

  • Напреднали
  • *****
  • Публикации: 73
    • Профил
Re: Bash script
« Отговор #57 -: Apr 05, 2018, 11:28 »
Не съм съгласен че задачата за IPC е лошо дефинирана.
Напротив даже, дава се свобода за реализация (четене) от страна на студентите (или където е там).
В задачата е казано C програма комуникиращи през обща памет с размер едно цяло число
Как ще се синхронизират процесите си е избор на пишещия, ако иска през семафор, ако иска през флаг ...
Предполагам че идеята на преподавателя е Основния процес пише число, другите два четат и за който е числото той го обработва, дига флага че е готов и отново Основния процес пише ново число, дига флага, другите четат и така до 100.
Приятна задачка :)
Активен

remotexx

  • Напреднали
  • *****
  • Публикации: 1341
    • Профил
Re: Bash script
« Отговор #58 -: Apr 05, 2018, 15:41 »
Само че синхронизацията е доста по сложна концепция от обмяната на данни и въобще не се споменава в задачата, и както казах само с един флаг не става щото има два четящи процеса, ами ако имаме и числа дето никой не ги обработва кой ще им дигне флага
Справка fizbuzz задачката

А и микро мениджъра не споменава нищо за синхронизация  :D

И най мразя такива задачи дето само присъствали на курса знаят за какво иде реч понеже 50-80%бот нещата са implied т.е. даскала е пак за и...не щото не може да си формулира задачите правилно така че и хора не присъствали на курса МУ да разберат какво е искал да каже 'автора'
« Последна редакция: Apr 05, 2018, 15:44 от remotexx »
Активен

4096bits

  • Напреднали
  • *****
  • Публикации: 4238
    • Профил
Re: Bash script
« Отговор #59 -: Apr 05, 2018, 16:41 »
Хубаво е, че все още има хора, изучаващи С.
Жабата, не зная защо, но ме дразни.
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
BASH - Script
Общ форум
blind_fish 3 2763 Последна публикация Nov 04, 2002, 20:20
от
bash script
Хардуерни и софтуерни проблеми
flame 6 2987 Последна публикация Sep 02, 2004, 12:28
от mimosh
bash script
Общ форум
anger 4 2552 Последна публикация Mar 06, 2005, 20:01
от anger
Помощ за bash script
Хардуерни и софтуерни проблеми
Ivan_storm 4 2481 Последна публикация May 30, 2005, 12:31
от rpetrov
bash script за праверяване на процес
Общ форум
sys7em 8 3013 Последна публикация Aug 09, 2005, 15:39
от