
Я прошёл учебник по скриптингу оболочки, в котором объяснялось, что такое глобальные переменные ( export
). Я наткнулся на пример «сделай сам», иллюстрирующий концепцию глобальных переменных в скриптинге оболочки, и я попробовал сделать это:
$ cat trial
vech=Bus
echo $vech
/bin/bash
echo "before empty line"
echo $vech
echo "after empty line"
vech=Car
echo $vech
exit
echo $vech
Ожидаемый результат этой программы:
Bus
before empty line
after empty line
Car
Bus
Но я получил:
$ chmod 777 trial
$ ./trial
Bus
$
где я ошибаюсь? Я новичок в этом вкусе, пожалуйста, помогите мне.
решение1
Попробуйте сделать это с помощьюздесь-документ:
vech=Bus
echo $vech
/bin/bash<<EOF
echo "before empty line"
echo $vech
echo "after empty line"
vech=Car
echo $vech
exit
EOF
echo $vech