Титла: Изпълнена команда в bash Публикувано от: go_fire в Oct 15, 2014, 21:09 Нещо ме вълнува от едно известно време, ама май няма да ми се усмихне щастито. Въпроса е, като си направиш някакъв изпълним пакет, дали има начин да стартираш нещо, след като друго нещо се е изпълнило. Гледал съм доста (доста, доста, колко да са доста) и там проблема се решава със спане (sleep), ама това е невероятна грозотия. Няма ли нещо по-умно от това? Все пак сме Юникс мамка му, най-добрата ОС на всички времена. Дето викаше админа на Юникс хейтърите, едно време беше най-лошата, сега е най-добрата на пазара и то без да направи нищо по въпроса :P
Титла: Re: Изпълнена команда в bash Публикувано от: 4096bits в Oct 15, 2014, 21:39 първа_команда && втора_команда
Ако първата команда се изпълни, се изпълнява и втората първа_команда ; втора_команда Първата команда се изпълнява, след това втората. А можеш и да порвериш exit status-а на едната програма и според върнатото да изпълняваш нещо друго след това. Тази стойност се пази във $? echo $? ще ти върне exit status на послесната команда от шела например Може да го включиш в if и да правиш после каквото искаш Ето ти и значенията на различните върнати стойности http://tldp.org/LDP/abs/html/exitcodes.html Титла: Re: Изпълнена команда в bash Публикувано от: go_fire в Oct 15, 2014, 21:45 А не и аз така си помислих, ама не е така. Пробвах го това, Опитай например:
Код
Да видиш, че това е тъпотия и не става така. Разбира се точно в случая се предполага, че не си толкова тъп и ще използваш Xephyr (щото няма кой да оправи Xnest), но например, аз си имам легална причина да го искам. Титла: Re: Изпълнена команда в bash Публикувано от: 4096bits в Oct 15, 2014, 21:48 А пробва ли да затвориш командите в единични кавички
или това единичното обратното, не помня как се казваше Титла: Re: Изпълнена команда в bash Публикувано от: 4096bits в Oct 15, 2014, 21:52 А пробва ли да затвориш командите в единични кавичкиТи не задаваш ли стойност във втората просто и после пускаш терминал Това не са ли две отделни неща? Титла: Re: Изпълнена команда в bash Публикувано от: 4096bits в Oct 15, 2014, 21:55 When DISPLAY does not contain a hostname, e.g. it is set to :0,.
Eй тоя цитат прочетох току-що, че проверих, какво прави това нещо Не знаех И не е ли xterm -display :1 Титла: Re: Изпълнена команда в bash Публикувано от: go_fire в Oct 15, 2014, 22:00 На мен въобще изобщо не ми пречи да ги изпълня ръчно или със спане, просто ме дразни да има нещо уродливо. Искам красота, тя щяла да спаси света. Понеже съм слабопаметтен, не помня, кой го е казал, ала мразя свинщини.
Титла: Re: Изпълнена команда в bash Публикувано от: 4096bits в Oct 15, 2014, 22:06 Искаш да пуснеш xterm на друг монитор ли?
Ми, ако това са командите, каква красота искаш в нещо толкова накъсано на вид ;D Можем да пуснем конкурс със задача да се направи по възможно най-сложен начин и тогава нещо може и да ти хареса ::) Правили са такива, за "Hello World!" Титла: Re: Изпълнена команда в bash Публикувано от: Odido в Oct 15, 2014, 22:27 Много съм слабичък в баш ама колегата 4096bits мисля, че даде удачен втори пример с :
[Само малка редакция му трябва : (първа_команда );( втора_команда) Дано съм разбрал правилно въпроса ти go_fire. Титла: Re: Изпълнена команда в bash Публикувано от: go_fire в Oct 15, 2014, 22:58 За съжаление О Дидо няма разлика с и без скоби. Благодаря все пак, че си отдели от времето за мен!
Титла: Re: Изпълнена команда в bash Публикувано от: Odido в Oct 16, 2014, 00:51 Вместо sleep ,може пък wait да ти свърши същата работа ,знам ли.Най-добре да потнеш кода ,който ползваш и тук да се намесят баш майсторите.
Титла: Re: Изпълнена команда в bash Публикувано от: romeo_ninov в Oct 16, 2014, 07:41 А не и аз така си помислих, ама не е така. Пробвах го това, Опитай например: Код: X :1& sleep 10; DISPLAY=:1 xterm Титла: Re: Изпълнена команда в bash Публикувано от: go_fire в Oct 16, 2014, 08:05 О Дидо, дали ще е чакане или спане все е щуротия. По принцип 4096 бита извади нещо интересничко от tld, за което не знаех, ESR е прав, че днешният потребител документация не чете, директно пита леля Гошовица.
Но, както и предполагах, елегантно решение няма. Щом и Нинов го казва (О Дидо, Нинов е от доайените тук, професионалист), значи няма. Благодаря на всички, които се включиха! Титла: Re: Изпълнена команда в bash Публикувано от: romeo_ninov в Oct 16, 2014, 08:25 О Дидо, дали ще е чакане или спане все е щуротия. По принцип 4096 бита извади нещо интересничко от tld, за което не знаех, ESR е прав, че днешният потребител документация не чете, директно пита леля Гошовица.То по-елегантно няма как да стане (или поне аз не знам, не се сещам). Въпроса е че Х трябва да е стартиран за да пуснеш терминала. А стартирането на Х отнема известно време. И не можеш да ползваш двата амперсанда, защото това би означавало че втората команда ще се изпълни след успешно (с код 0) завършване на предишната. А на теб ти трябва пуснат Х :) Заради това е и този sleep П.П. И благодаря за определението Титла: Re: Изпълнена команда в bash Публикувано от: go_fire в Oct 16, 2014, 08:39 Така и така сме тук да задам един под въпрос. Как да направя така, че да не ми текат началните надписи, а да има например едно: Loading… Виждал съм това много дистрибуции го правят. Да зная, че мога да сложа Плимут и да ми се върти някаква цветна анимациика, ама аз единствено искам да подтисна надписите.
Това не за мен, аз даже предпочитам да ги има, защото си ги чета (машинката ми не е толкова бърза, че да са нечетими) и следя дали всичко е в ред. Но има хора, като ги видят и изпадат в ужас. Та за благото на семейните питам. Титла: Re: Изпълнена команда в bash Публикувано от: 4096bits в Oct 16, 2014, 17:29 Това да се заменят натписите при стартирането на машината с някакъв друг не зная как може да се направи. Иначе може да се изключат от grub.conf като се променят опциите на boot-a. Там quiet ли се пишеше. А може и да се пренасочи изхода към друг терминал.
Във /etc/default/grub има един ред GRUB_CMDLINE_LINUX= Тургаш му GRUB_CMDLINE_LINUX="console=tty10" Иначе Х11 доста добре е замислена. Стартира се сървър и всяко графично приложение е клиент. Така клиента може да оперира със сървара и през мрежата ондъфлай. |