Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: [РЕШЕНО] Как добавить в скрипт?  (Прочитано 871 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн _Alex_50

  • Автор темы
  • Любитель
  • *
  • Сообщений: 78
    • Просмотр профиля
[РЕШЕНО] Как добавить в скрипт?
« : 23 Июня 2011, 12:57:12 »
Как в скрипт на баше добавить выполнение другого скрипта, например ./pluralform.sh 2 штука штуки штук
« Последнее редактирование: 24 Июня 2011, 23:56:29 от _Alex_50 »

Оффлайн aliftin

  • Старожил
  • *
  • Сообщений: 1398
    • Просмотр профиля
Re: Как добавить в скрипт?
« Ответ #1 : 23 Июня 2011, 14:26:16 »
Не совсем понял что вы хотите. Вам нужно запускать скрипт, не прерывая работу первого? Тогда можно сделать это так:
i="/path/to/script.sh and options"
exec "$i"

Но при этом сначала завершится запущенный скрипт и только потом продолжится выполнение исходного скрипта. Можно запустить новый скрипт в фоне:
i="/path/to/script.sh and options"
exec "$i" &
Если мы не можем до чего то дотянуться, мы виним в этом не свой рост, не отсутствие табуретки, а свою цель.

andrey_p

  • Гость
Re: Как добавить в скрипт?
« Ответ #2 : 23 Июня 2011, 15:41:45 »
Кажется человеку нужно просто:

var=$(./pluralform.sh 2 штука штуки штук)
или что-то, типа

echo $(./pluralform.sh 2 штука штуки штук)

Оффлайн _Alex_50

  • Автор темы
  • Любитель
  • *
  • Сообщений: 78
    • Просмотр профиля
Re: Как добавить в скрипт?
« Ответ #3 : 23 Июня 2011, 16:12:13 »
Кажется человеку нужно просто:

var=$(./pluralform.sh 2 штука штуки штук)
или что-то, типа

echo $(./pluralform.sh 2 штука штуки штук)
Точно, спасибо.

Пользователь решил продолжить мысль 23 Июня 2011, 16:37:47:
Не получается! :'(
Нужно, чтобы в этой части скрипта слово "градус" склонялось по падежам с помощью скрипта pluralform.sh time=$(date +%H)
DATE_TIME=`./smarttime.py`

URL="http://informer.gismeteo.ru/xml/99569_1.xml"
EXEC="/usr/bin/curl -s"

a=`$EXEC $URL`
echo "Сейчас. $DATE_TIME."


#температура
echo $a | tr "/>" "\n" | grep TEMPERATURE | sed -n 2p | sed -e 's/<TEMPERATURE //' |\
sed -e 's/"//g' | tr -d "min=" | tr -d "max=" | sed -e 's/ //' |\
sed -e 's/-/минус./g' | gawk '{ print "Температура.",($1+$2)/2,"градусов по цельсию." }'
Вот пример использования на Bash http://ru.festivalspeaker.wikia.com/wiki/Говорим_время(нижний скрипт).
Вот скрипт pluralform.sh
(Нажмите, чтобы показать/скрыть)
Помогите разобраться.
« Последнее редактирование: 23 Июня 2011, 16:37:47 от _Alex_50 »

Оффлайн aliftin

  • Старожил
  • *
  • Сообщений: 1398
    • Просмотр профиля
Re: Как добавить в скрипт?
« Ответ #4 : 23 Июня 2011, 23:03:54 »
А на функции разделить скрипт нельзя? Какова вся задача и зачем так сильно мудрить.
Если мы не можем до чего то дотянуться, мы виним в этом не свой рост, не отсутствие табуретки, а свою цель.

Оффлайн _Alex_50

  • Автор темы
  • Любитель
  • *
  • Сообщений: 78
    • Просмотр профиля
Re: Как добавить в скрипт?
« Ответ #5 : 24 Июня 2011, 05:48:58 »
Задача состоит в том, чтобы скрипт получал от информера gismeteo.ru погоду и выводил её в терминал в текстовом виде (без разных символов). Потом это будет скармливаться festival. Скрипт работает нормально, но существительные не склоняет.

andrey_p

  • Гость
Re: Как добавить в скрипт?
« Ответ #6 : 24 Июня 2011, 06:14:50 »
#!/bin/sh

pluraform () {
    n=$(($1 % 100))
    n1=$(($n % 10))
    if [ $n -gt 10 -a $n -lt 20 ]; then echo $4;
    elif [ $n1 -gt 1 -a $n1 -lt 5 ]; then echo $3;
    elif [ $n1 -eq 1 ]; then echo $2;
    else echo $4
    fi
}


URL="http://informer.gismeteo.ru/xml/99569_1.xml"
EXEC="/usr/bin/curl -s"

DATA=$($EXEC $URL)

t=$(
echo "$DATA"     |
grep TEMPERATURE |
sed -n 2p        |
tr -s ' "' '='   |
awk -F '=' '{ printf "%.0f", ($3+$5)/2 }'
)

echo "Сейчас $t $(pluraform $t градус градуса градусов)"

« Последнее редактирование: 24 Июня 2011, 06:18:40 от andrey_p »

Оффлайн _Alex_50

  • Автор темы
  • Любитель
  • *
  • Сообщений: 78
    • Просмотр профиля
Re: Как добавить в скрипт?
« Ответ #7 : 24 Июня 2011, 23:55:58 »
Большое спасибо, всё прекрасно работает. :)

 

Страница сгенерирована за 0.127 секунд. Запросов: 22.