Страница 3 из 3
Re: По поводу sh
Добавлено: 22 дек 2016, 20:51
nezabudka
Да, я так понимаю запускаемый скрипт не соответствуе директории в которую заходим.
Поменяйте относительные пути ./run.sh ./auth.sh на полные /home/полный_путь/run.sh и т. д.
Re: По поводу sh
Добавлено: 22 дек 2016, 20:54
nezabudka
FoxSeaSha писал(а):Есть такое дедик малех лёг)
По другому и не могло быть., мы в замкнутом цикле запускаем кучу скриптов, притом бессмысленных.

Re: По поводу sh
Добавлено: 22 дек 2016, 21:05
nezabudka
Попробуйте добавить в конце каждого скрипта закрытие сессии в которой
запускался скрипт. В конце первого скрипта строчка будет такая
Для следующих вставте имя соответствующей сессии вместо Bungee
Re: По поводу sh
Добавлено: 22 дек 2016, 21:12
FoxSeaSha
Я уже разобрался) Спасибо)
Re: По поводу sh
Добавлено: 23 дек 2016, 13:45
Olej
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
Но это
чудовищно медленно!
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 ]}
И это
на несколько порядков быстрее.