LinuxForum.Fans
Тема

Как передать переменные из скрипта в другой скрипт?

Автор: Fast_Deer 9 сообщений 6911 просмотров
#294768

Гопода, извиняюсь за нубский вопрос, но после 4 часов ночного дебага скриптов выяснил что переменные заданные в "головном" скрипте не передаются в исполняющий непосредственно прогу скрипт. В связи с этим возник вопрос:
Как передать переменные (несколько) из одного скрипта в другой?
ЗЫ если несложно, то приведите пожалуйста примеры для лучшего понимания, так как я в интернете ничего не нашел кроме команды env. Или дайте ссылку где это подробно описано.

#294771

язык?

#294773
Rabat написал:
язык?

OS = FreeBSD 9.1
shell = /bin/sh
имеются ввиду sh - скрипты

#294785
"Fast Deer" написал:
Как передать переменные (несколько) из одного скрипта в другой?

Не совсем понял, но...
[console]
lupo@gentoo-laptop temp % cat function.sh
#!/bin/bash
var1="one"
var2="two"
lupo@gentoo-laptop temp % cat function_2.sh
#!/bin/bash
var3="three"
var4="four"
lupo@gentoo-laptop temp % cat test.sh
#!/bin/bash
source function.sh
echo ${var2}
echo ${var1}

# ...или так
. function_2.sh
echo ${var3}
echo ${var4}
lupo@gentoo-laptop temp % ./test.sh
two
one
three
four
[/console]

#294793

да, но почему просто не задать те же самые переменные во втором скрипте?

#294794
"Rabat" написал:
да, но почему просто не задать те же самые переменные во втором скрипте?

Иногда просто удобнее создать отдельный файл с переменными и функциями и использовать его в разных скриптах.

#294804
Rabat написал:
да, но почему просто не задать те же самые переменные во втором скрипте?

когда у тебя идет цепочка вызовов из скрипта в скрипт, которые расположены в разных местах, то то править каждый раз в каждом скрипте одни и те же параметры нецелесообразно а иногда и просто муторно. намного проще объявить эти переменные в стартовом скрипте (или отдельно) и уже от туда их править.
2 Lupo Alberto: про вариант вызова с точкой я как то не подумал (забыл, не знал и пр) - надо будет попробовать. На сколько я понял нужно просто создать файл с описанием всех переменных, а потом просто вызвать в скрипте запуска его с полным путем с точкой?:
. /путь/function_2.sh

#294805
"Fast Deer" написал:
На сколько я понял нужно просто создать файл с описанием всех переменных, а потом просто вызвать в скрипте запуска его с полным путем с точкой?:

В данном случае точка не указание на текущий каталог, а аналог команды source, и между ней и файлом должен быть пробел.

#294808
Lupo Alberto написал:
[quote="Fast Deer"]На сколько я понял нужно просто создать файл с описанием всех переменных, а потом просто вызвать в скрипте запуска его с полным путем с точкой?:

В данном случае точка не указание на текущий каталог, а аналог команды source, и между ней и файлом должен быть пробел.[/quote]

это я понял - видел такое в rc.d скриптах
Спасибо! буду думать и пробовать

Войдите или зарегистрируйтесь, чтобы ответить.