По поводу sh

Re: По поводу sh

Сообщение nezabudka » 22 дек 2016, 20:51

Да, я так понимаю запускаемый скрипт не соответствуе директории в которую заходим.
Поменяйте относительные пути ./run.sh ./auth.sh на полные /home/полный_путь/run.sh и т. д.
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Аватар пользователя
nezabudka
Местный говорун
Местный говорун
 
Сообщений: 613
Фото: 180
Стаж: 3 года 1 месяц 7 дней
Откуда: Ростов на Дону
Благодарил (а): 286 раз.
Поблагодарили: 145 раз.

Re: По поводу sh

Спонсор

Спонсор
 

Re: По поводу sh

Сообщение nezabudka » 22 дек 2016, 20:54

FoxSeaSha писал(а):

Есть такое дедик малех лёг)

По другому и не могло быть., мы в замкнутом цикле запускаем кучу скриптов, притом бессмысленных. :D
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Аватар пользователя
nezabudka
Местный говорун
Местный говорун
 
Сообщений: 613
Фото: 180
Стаж: 3 года 1 месяц 7 дней
Откуда: Ростов на Дону
Благодарил (а): 286 раз.
Поблагодарили: 145 раз.

Re: По поводу sh

Сообщение nezabudka » 22 дек 2016, 21:05

Попробуйте добавить в конце каждого скрипта закрытие сессии в которой
запускался скрипт. В конце первого скрипта строчка будет такая
Код: выделить все
screen -S Bungee -X quit

Для следующих вставте имя соответствующей сессии вместо Bungee
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Аватар пользователя
nezabudka
Местный говорун
Местный говорун
 
Сообщений: 613
Фото: 180
Стаж: 3 года 1 месяц 7 дней
Откуда: Ростов на Дону
Благодарил (а): 286 раз.
Поблагодарили: 145 раз.

Re: По поводу sh

Сообщение FoxSeaSha » 22 дек 2016, 21:12

Я уже разобрался) Спасибо)
FoxSeaSha
Молчаливый гость
Молчаливый гость
 
Автор темы
Сообщений: 8
Стаж: 1 год 5 месяцев 2 дня
Откуда: Moldova
Благодарил (а): 1 раз.
Поблагодарили: 1 раз.

Re: По поводу sh

Сообщение Olej » 23 дек 2016, 13:45

FoxSeaSha писал(а):

( Что-то типо рекурсии )

Любопытная оговорка...

1. На shell/bash в принципе нельзя написать рекурсивные функции, в отличие от подавляющего большинства языков программирования.
Это связано с тем, что функции bash могут возвращать только значения кода завершения в пределах [0...255], т. е. в этом смысле — не имеющие возвращаемых вычисленных значений вообще.

2. Но можно организовать рекурсивный вызов самих скриптов bash из выполняющихся скриптов bash. Вот, как пример, вычисление чисел Фибоначчи:
Код: выделить все
#!/bin/bash

if [ "$1" -lt "2" ]
then
   echo "1"
else
   f1=$($0 `expr $1 - 1`)
   f2=$($0 `expr $1 - 2`)
   echo `expr $f1 + $f2`
fi

Код: выделить все
[olej@dell speed]$ ./fibo.sh 8
34

Но это чудовищно медленно!

3. Можно и искусственно организовать (внутри скрипта) рекурсию в функциях bash (с очередью, стеком возвратов), хорошо понимая как вообще реализуется рекурсия вызовов. Те же числа Фибоначчи:
Код: выделить все
#!/bin/bash

declare -a res

fib () {
   if [ "$1" -lt 2 ]
   then
      res[ $1 ]=1.
   else.
      fib `expr $1 - 1`
      let s=${res[ `expr $1 - 1` ]}+${res[ `expr $1 - 2` ]}
      res[ $1 ]=$s
   fi
}

res[ 0 ]=1
fib $1
echo ${res[ $1 ]}

И это на несколько порядков быстрее.
Olej
 
Стаж: 48 лет 4 месяца 24 дня

Пред.

Вернуться в Решаем трудности вместе

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron