Гопода, извиняюсь за нубский вопрос, но после 4 часов ночного дебага скриптов выяснил что переменные заданные в "головном" скрипте не передаются в исполняющий непосредственно прогу скрипт. В связи с этим возник вопрос:
Как передать переменные (несколько) из одного скрипта в другой?
ЗЫ если несложно, то приведите пожалуйста примеры для лучшего понимания, так как я в интернете ничего не нашел кроме команды env. Или дайте ссылку где это подробно описано.
Как передать переменные из скрипта в другой скрипт?
язык?
язык?
OS = FreeBSD 9.1
shell = /bin/sh
имеются ввиду sh - скрипты
Как передать переменные (несколько) из одного скрипта в другой?
Не совсем понял, но...
[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]
да, но почему просто не задать те же самые переменные во втором скрипте?
да, но почему просто не задать те же самые переменные во втором скрипте?
Иногда просто удобнее создать отдельный файл с переменными и функциями и использовать его в разных скриптах.
да, но почему просто не задать те же самые переменные во втором скрипте?
когда у тебя идет цепочка вызовов из скрипта в скрипт, которые расположены в разных местах, то то править каждый раз в каждом скрипте одни и те же параметры нецелесообразно а иногда и просто муторно. намного проще объявить эти переменные в стартовом скрипте (или отдельно) и уже от туда их править.
2 Lupo Alberto: про вариант вызова с точкой я как то не подумал (забыл, не знал и пр) - надо будет попробовать. На сколько я понял нужно просто создать файл с описанием всех переменных, а потом просто вызвать в скрипте запуска его с полным путем с точкой?:
. /путь/function_2.sh
На сколько я понял нужно просто создать файл с описанием всех переменных, а потом просто вызвать в скрипте запуска его с полным путем с точкой?:
В данном случае точка не указание на текущий каталог, а аналог команды source, и между ней и файлом должен быть пробел.
[quote="Fast Deer"]На сколько я понял нужно просто создать файл с описанием всех переменных, а потом просто вызвать в скрипте запуска его с полным путем с точкой?:
В данном случае точка не указание на текущий каталог, а аналог команды source, и между ней и файлом должен быть пробел.[/quote]
это я понял - видел такое в rc.d скриптах
Спасибо! буду думать и пробовать