#!/bin/bash
export GLOBAL_VAR=1
function change_var {
GLOBAL_VAR=$(($GLOBAL_VAR*2))
}
function print_var_out {
echo "[out] Before: $GLOBAL_VAR"
a=$(change_var)
echo "[out] After: $GLOBAL_VAR"
}
function print_var_in {
echo "[in] Before: $GLOBAL_VAR"
change_var
echo "[in] After: $GLOBAL_VAR"
}
print_var_out
print_var_in
Имеется функция
change_var в скрипте, которая должна изменять глобальную переменную
Если просто вызвать функцию, как это делается в
print_var_in, то всё работает правильно
Но если обернуть в $() как в
print_var_out, то глобальная переменная не изменится
Как обойти, не используя файлы?
Вывод:
bin [master●●] % ./test.sh
[out] Before: 1
[out] After: 1
[in] Before: 1
[in] After: 2