Автор Тема: BASH въпрос  (Прочетена 7974 пъти)

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: BASH въпрос
« Отговор #15 -: Dec 02, 2010, 13:17 »
Абе Intel се пише с главна букна бе :D :D :D :D.
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Re: BASH въпрос
« Отговор #16 -: Dec 02, 2010, 13:18 »
хм ^^ нещо да не е от версиите на bash

Сигурно.... Може да е от задклавиатурното нещо...

ROKO__, к'во е това на третия ред:
Код:
1="1"
???

Уж променлива :) за да може после да пиша просто $1
$1 е специална променлива и тя означава 1вия аргумент от командния ред (не знам за кой път го казвам в тая тема).... Или позлваш друго име за променливата, или си set-ваш кои са ти аргументите от командния ред...
Активен

ROKO__

  • Напреднали
  • *****
  • Публикации: 1531
  • Distribution: Calculate Linux Workstation amd64
  • Window Manager: GNOME 2.30
  • AMD Athlon64 4000+ Dual Core 2100 MHz 2MB L2 cache
    • Профил
Re: BASH въпрос
« Отговор #17 -: Dec 02, 2010, 13:20 »
Горе долу това е което ми трябваше за скриптинга...

Сега остава Питоня :D Ама по късно ще пиша тема за него
Активен

Не е важно да си добър, важно е да си най добрия!!!

http://www.calculate-linux.ru/
http://www.agilialinux.ru/

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Re: BASH въпрос
« Отговор #18 -: Dec 02, 2010, 13:26 »
Мн интересн скрипт... Изключваме bashism-ите, но какво прави по средата на кода #!/bin/bash??? И за какво ти е
Код
GeSHi (Bash):
  1. amd="amd"
  2. intel="intel"
след като после имаш
Код
GeSHi (Bash):
  1. if [ "$answer" == intel ]
което е еквивалентно на
Код
GeSHi (Bash):
  1. if [ "$answer" == "intel" ]
НЕ на
Код
GeSHi (Bash):
  1. if [ "$answer" == $intel ]
Активен

ROKO__

  • Напреднали
  • *****
  • Публикации: 1531
  • Distribution: Calculate Linux Workstation amd64
  • Window Manager: GNOME 2.30
  • AMD Athlon64 4000+ Dual Core 2100 MHz 2MB L2 cache
    • Профил
Re: BASH въпрос
« Отговор #19 -: Dec 02, 2010, 13:26 »
Марче благодаря за помощта
Активен

Не е важно да си добър, важно е да си най добрия!!!

http://www.calculate-linux.ru/
http://www.agilialinux.ru/

ROKO__

  • Напреднали
  • *****
  • Публикации: 1531
  • Distribution: Calculate Linux Workstation amd64
  • Window Manager: GNOME 2.30
  • AMD Athlon64 4000+ Dual Core 2100 MHz 2MB L2 cache
    • Профил
Re: BASH въпрос
« Отговор #20 -: Dec 02, 2010, 13:27 »
Мн интересн скрипт... Изключваме bashism-ите, но какво прави по средата на кода #!/bin/bash??? И за какво ти е
Код
GeSHi (Bash):
  1. amd="amd"
  2. intel="intel"
след като после имаш
Код
GeSHi (Bash):
  1. if [ "$answer" == intel ]
което е еквивалентно на
Код
GeSHi (Bash):
  1. if [ "$answer" == "intel" ]
НЕ на
Код
GeSHi (Bash):
  1. if [ "$answer" == $intel ]

Позабравил съм нещата за това че не обръщай внимание на грешките след като опресних знанията няма да ги допускам отново

Доста полезна ми беше тази помощ поне ще мога да си довърша инсталатора за моя училищен проект. (След време може да го пренапиша на Python ако сметна за необходимо)
« Последна редакция: Dec 02, 2010, 13:30 от ROKO__ »
Активен

Не е важно да си добър, важно е да си най добрия!!!

http://www.calculate-linux.ru/
http://www.agilialinux.ru/

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Re: BASH въпрос
« Отговор #21 -: Dec 02, 2010, 13:36 »
Марче благодаря за помощта
За нищо...

Цитат
Доста полезна ми беше тази помощ поне ще мога да си довърша инсталатора за моя училищен проект. (След време може да го пренапиша на Python ако сметна за необходимо)
Ако това е код за инсталатор... доста интересен ще бъде... А за Python - какъв смисъл има да го пренаписваш, не мисля, че имаш нужда от нещо, което Bash не ти предоставя, а Python - да... Ти си знаеш де, на нас ще ни е интересно да видим какво пишеш на Python :)
Активен

ROKO__

  • Напреднали
  • *****
  • Публикации: 1531
  • Distribution: Calculate Linux Workstation amd64
  • Window Manager: GNOME 2.30
  • AMD Athlon64 4000+ Dual Core 2100 MHz 2MB L2 cache
    • Профил
Re: BASH въпрос
« Отговор #22 -: Dec 02, 2010, 13:39 »
http://extremebg.co.cc/gentoo/gentoo-installer
http://extremebg.co.cc/gentoo/Chroot

Ще ползвам за база тези скриптове от предишен мой успешен но не много удачен опит и ще го внедря в "ArchLinux за училище" :) Ако имате някакви критики относно тези скриптове ги кажете
Активен

Не е важно да си добър, важно е да си най добрия!!!

http://www.calculate-linux.ru/
http://www.agilialinux.ru/

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: BASH въпрос
« Отговор #23 -: Dec 02, 2010, 13:40 »
Хора, четете документацията, за сравняване на числа се ползва -eq, а не =

Код:
if [ $1 -eq 1 ]; then......
Активен

0x2B|~0x2B

ROKO__

  • Напреднали
  • *****
  • Публикации: 1531
  • Distribution: Calculate Linux Workstation amd64
  • Window Manager: GNOME 2.30
  • AMD Athlon64 4000+ Dual Core 2100 MHz 2MB L2 cache
    • Профил
Re: BASH въпрос
« Отговор #24 -: Dec 02, 2010, 13:40 »
Марче благодаря за помощта
За нищо...

Цитат
Доста полезна ми беше тази помощ поне ще мога да си довърша инсталатора за моя училищен проект. (След време може да го пренапиша на Python ако сметна за необходимо)
Ако това е код за инсталатор... доста интересен ще бъде... А за Python - какъв смисъл има да го пренаписваш, не мисля, че имаш нужда от нещо, което Bash не ти предоставя, а Python - да... Ти си знаеш де, на нас ще ни е интересно да видим какво пишеш на Python :)

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

Не е важно да си добър, важно е да си най добрия!!!

http://www.calculate-linux.ru/
http://www.agilialinux.ru/

shoshon

  • Напреднали
  • *****
  • Публикации: 497
    • Профил
Re: BASH въпрос
« Отговор #25 -: Dec 02, 2010, 13:40 »
Мале мале....


за сравнения на числа се използват -eq -lt -gt. За сравнения на низове се използва = .

Всякви останали разсъждения са излишни
I="ivan"
[ivan@ivan-laptop ~]$ if [ "$I" = "ivan" ]; then echo "balabla"; else echo "not alabala"; fi
balabla


RTFM

А гледам че докато съм си изливал "съчувствието" са отговорили преди мене :)


Ооо... сега гледам че ROKO_ е "внедрител". Тежко им на дечицата...
« Последна редакция: Dec 02, 2010, 13:42 от shoshon »
Активен

romeo_ninov

  • Напреднали
  • *****
  • Публикации: 2155
    • Профил
Re: BASH въпрос
« Отговор #26 -: Dec 02, 2010, 13:43 »
Мале мале....


за сравнения на числа се използват -eq -lt -gt. За сравнения на низове се използва = .

Всякви останали разсъждения са излишни
I="ivan"
[ivan@ivan-laptop ~]$ if [ "$I" = "ivan" ]; then echo "balabla"; else echo "not alabala"; fi
balabla


RTFM

А гледам че докато съм си изливал "съчувствието" са отговорили преди мене :)


Ооо... сега гледам че ROKO_ е "внедрител". Тежко им на дечицата...
Аз докато напиша моето станаха две страници :)
Активен

0x2B|~0x2B

ROKO__

  • Напреднали
  • *****
  • Публикации: 1531
  • Distribution: Calculate Linux Workstation amd64
  • Window Manager: GNOME 2.30
  • AMD Athlon64 4000+ Dual Core 2100 MHz 2MB L2 cache
    • Профил
Re: BASH въпрос
« Отговор #27 -: Dec 02, 2010, 13:46 »
Мале мале....


за сравнения на числа се използват -eq -lt -gt. За сравнения на низове се използва = .

Всякви останали разсъждения са излишни
I="ivan"
[ivan@ivan-laptop ~]$ if [ "$I" = "ivan" ]; then echo "balabla"; else echo "not alabala"; fi
balabla


RTFM

А гледам че докато съм си изливал "съчувствието" са отговорили преди мене :)


Ооо... сега гледам че ROKO_ е "внедрител". Тежко им на дечицата...

Спокойно бре няма да напиша точно това.. Това е просто пример по който по лесно да си припомня материала. Иначе ми трябва като правя инсталатора да може да сравнява зададените параметри например файлова система точки на монтиране \ако не е зададена точка за / да изпише съобщение и такива/ абе знаеш за какво говоря да не разтъкавам локуми
Активен

Не е важно да си добър, важно е да си най добрия!!!

http://www.calculate-linux.ru/
http://www.agilialinux.ru/

bop_bop_mara

  • Напреднали
  • *****
  • Публикации: 2433
  • Distribution: Debian Testing
  • Window Manager: LXDE
  • Cute and cuddly
    • Профил
Re: BASH въпрос
« Отговор #28 -: Dec 02, 2010, 13:49 »
за сравнения на числа се използват -eq -lt -gt. За сравнения на низове се използва = .
Сега, 1во виж последните скриптове на Роко, ползва точно -eq, тъй че спокойно. Второ, в случая за равенство на практика е все едно, така или иначе всички променливи в bash са низове (-lt, -gt само казват да сравнява тия низове все едно са числа). Стилово все пак може би -eq е по-добре.

Роко, ето какво забелязвам по скриптовете (без да чета много надълбоко какви действия извършват):
1. Като установиш, че юзърът не е root и му кажеш да го пусне като root, продължаваш с изпълнението на скрипта...
2. Никъде не се проверява всякак изпълнена команда как е завършила - успешно или неуспешно - и според това как трябва да се продължи. В (ba)sh командите се изпълняват една след друга, ако някоя завърши неуспешно, не спира изпълнението на скрипта, а се продължава със следващата. Доколкото съм виждала и чувала, сериозните скриптове са пълни с if и case.
Активен

ROKO__

  • Напреднали
  • *****
  • Публикации: 1531
  • Distribution: Calculate Linux Workstation amd64
  • Window Manager: GNOME 2.30
  • AMD Athlon64 4000+ Dual Core 2100 MHz 2MB L2 cache
    • Профил
Re: BASH въпрос
« Отговор #29 -: Dec 02, 2010, 13:52 »
за сравнения на числа се използват -eq -lt -gt. За сравнения на низове се използва = .
Сега, 1во виж последните скриптове на Роко, ползва точно -eq, тъй че спокойно. Второ, в случая за равенство на практика е все едно, така или иначе всички променливи в bash са низове (-lt, -gt само казват да сравнява тия низове все едно са числа). Стилово все пак може би -eq е по-добре.

Роко, ето какво забелязвам по скриптовете (без да чета много надълбоко какви действия извършват):
1. Като установиш, че юзърът не е root и му кажеш да го пусне като root, продължаваш с изпълнението на скрипта...
2. Никъде не се проверява всякак изпълнена команда как е завършила - успешно или неуспешно - и според това как трябва да се продължи. В (ba)sh командите се изпълняват една след друга, ако някоя завърши неуспешно, не спира изпълнението на скрипта, а се продължава със следващата. Доколкото съм виждала и чувала, сериозните скриптове са пълни с if и case.

Да това и сам го казах че този скрипт ми беше още в самото начало когато започнах с bash и не всичко съм изпипал и сега това ще тествам докато стане както трябва
Активен

Не е важно да си добър, важно е да си най добрия!!!

http://www.calculate-linux.ru/
http://www.agilialinux.ru/

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
BASH: Как да поддържам една програма работеща
Общ форум
Regia 1 9483 Последна публикация Feb 16, 2005, 08:51
от
bash
Настройка на програми
tuxi 7 4999 Последна публикация Jun 11, 2005, 19:12
от tuxi
Моля за малко помощ за BASH
Настройка на програми
bonbon 3 3761 Последна публикация Dec 04, 2005, 16:37
от bonbon
BASH
Общ форум
Dean79 3 3893 Последна публикация Jan 13, 2006, 00:24
от Dean79
Bash присвояване на стойност от файл
Общ форум
Pulear 6 4523 Последна публикация May 21, 2006, 17:20
от Pulear