Автор Тема: дни от седмицата в пул ( bash script )  (Прочетена 1426 пъти)

mrowcp

  • Напреднали
  • *****
  • Публикации: 450
    • Профил
Абе уж е супер елементарно, но не ми идва :) на ум как да стане...
Искам да направя следното:

изброявам дните от седмицата Mon, Tue, Wed, Thu, Fri като пул и после с date +%a проверявам дали днешния ден отговаря на някои от изброените.Ако ДА прави едикакво си.

В момента ги броя супер тъпо с if [ $date = Mon ] || [ $date = Tue ] ... та ми се иска по съкратен начин.
Другото което се сещам е за [ $date != Sat ] || [ $date != Sun ]
« Последна редакция: Aug 05, 2010, 19:29 от mrowcp »
Активен

Some Things Just Are The Way They Are

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: дни от седмицата в пул ( bash script )
« Отговор #1 -: Aug 05, 2010, 19:43 »
Ти на кое викаш "пул"? На масива или на въвеждането с read? И, ако става дума за read, кога трябва да ти каже "да" - когато въведеш текущия ден и цъкнеш ентър, или след като си въвел всички дни?
Активен

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

mrowcp

  • Напреднали
  • *****
  • Публикации: 450
    • Профил
Re: дни от седмицата в пул ( bash script )
« Отговор #2 -: Aug 05, 2010, 20:03 »
Ами на масива :) Променях някой неща и сега като прочетох видях, че е написано доста... кофти :)
Идеята е да се проверява кой ден от седмицата е и ако е от Понеделник до Петък да вади/върши нещо.
Активен

Some Things Just Are The Way They Are

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: дни от седмицата в пул ( bash script )
« Отговор #3 -: Aug 05, 2010, 20:06 »
Код
GeSHi (Bash):
  1. [ $date != Sat ] || [ $date != Sun ]

Не трябва ли да е:

Код
GeSHi (Bash):
  1. [ $date != Sat ] && [ $date != Sun ]
Активен

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

mrowcp

  • Напреднали
  • *****
  • Публикации: 450
    • Профил
Re: дни от седмицата в пул ( bash script )
« Отговор #4 -: Aug 05, 2010, 20:15 »
Ами то в случая мисля е едно и също :)
Ако днес не е Събота и днес не е Неделя; тогава...
Ако днес не е Събота или днес не е Неделя; тогава...
Активен

Some Things Just Are The Way They Are

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: дни от седмицата в пул ( bash script )
« Отговор #5 -: Aug 05, 2010, 20:44 »
1 || 0 = 1
0 || 1 = 1
Грешна ти е логиката според мен.
Активен

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

mrowcp

  • Напреднали
  • *****
  • Публикации: 450
    • Профил
Re: дни от седмицата в пул ( bash script )
« Отговор #6 -: Aug 05, 2010, 20:56 »
Ами като, че ли нещо го омотах и с && е по-добре :) , но пък при тест и по двата начина работи...
Активен

Some Things Just Are The Way They Are

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: дни от седмицата в пул ( bash script )
« Отговор #7 -: Aug 05, 2010, 21:02 »
Тъй като в bash няма вградена функция за търсене в масив, друг вариант е да обхождаш масива с цикъл. Пример:
Код
GeSHi (Bash):
  1. today=`date +%a`
  2. days=(Mon Tue Wed Thu Fri)
  3. for i in ${days[@]}; do
  4.    if [[ $i == $today ]]; then
  5. echo "da"
  6. break
  7.    fi
  8. done
Активен

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

triel

  • Напреднали
  • *****
  • Публикации: 36
    • Профил
Re: дни от седмицата в пул ( bash script )
« Отговор #8 -: Aug 05, 2010, 21:21 »
Или малко по-кратък, по-лек, но и по-труден за четене вариант:

Код
GeSHi (Bash):
  1. today=`date +%u`
  2. if [[ $today < 6 ]]; then
  3.    echo "da"
  4. fi
« Последна редакция: Aug 05, 2010, 21:26 от triel »
Активен

mrowcp

  • Напреднали
  • *****
  • Публикации: 450
    • Профил
Re: дни от седмицата в пул ( bash script )
« Отговор #9 -: Aug 05, 2010, 21:37 »
Мерси и на тримата.
Тъкмо се чудих дали има начин да се "извадят" дните от седмицата като числа, а не като имена :)
Активен

Some Things Just Are The Way They Are

remotex

  • Напреднали
  • *****
  • Публикации: 344
    • Профил
Re: дни от седмицата в пул ( bash script )
« Отговор #10 -: Aug 06, 2010, 08:36 »
1. Има начин да се извадят като числа - както вече ти е отговорил triel
2. backtolife е по-прав
в твоя случай [ $date != Sat ] || [ $date != Sun ]
когато е събота то ще праща защото !=неделя а когато е неделя ще праща защото !=събота :-)
и плюс всички останали дни от седмицата т.е. така както си го дал ще праща всеки ден
...явно не си дочакал да тестваш през уикенда
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
Bash script и извеждането му
Web development
martien 3 6989 Последна публикация Nov 02, 2006, 11:55
от morbid_viper
Bash script за следене съдържанието на директория
Общ форум
mishot 9 7879 Последна публикация Mar 05, 2008, 00:38
от maniac
Bash script
Общ форум
vikktor 14 8150 Последна публикация Mar 04, 2009, 23:38
от CappY
Помощ за bash script
Общ форум
LinuxFanUNIX 4 5191 Последна публикация May 15, 2009, 23:05
от LinuxFanUNIX
bash script
Общ форум
samiboy 3 1996 Последна публикация May 26, 2009, 06:45
от Hapkoc