Есть много способов сделать это. Вот еще один. Вы можете придумать и другие способы.
echo "unix is great os." | tr [a-z] [A-Z]
UNIX IS GREAT OS.
Вы должны убедиться, что вы экспортируете переменные среды, к которым вы хотите иметь доступ в вашем скрипте, прежде чем запускать скрипт. ИЕ:
Unix> export MY_TEMP=/tmp
Unix> some_script.sh
Теперь некоторые _script.sh будут иметь доступ к $MY _TEMP --когда вы вызываете сценарий оболочки, вы получаете новую среду только с экспортированными переменными, если только вы не "используете" ее, предварительно команда скрипта с точкой ("." )и пробел, затем имя вашего скрипта:
Unix> . some_script.sh # runs in current environment
Совет по отладке :Включите в верхнюю часть скрипта команду set
, чтобы увидеть, какие переменные может видеть ваш скрипт.
Также обратите внимание, что если вы хотите, чтобы они существовали только в течение «длительности выполнения сценария», вы можете поместить их экспорт в файл, а затем использовать этот файл в своем сценарии.
Поскольку при выполнении сценария он будет выполняться в новой оболочке, таким образом, эти переменные будут экспортированы только в эту подоболочку (и ее потомков ), и они не попадут в вашу собственную оболочку, т.е. это будет выглядеть так, как будто вы отключили их автоматически после окончания выполнения скрипта.
Пример:
# config.txt
export SECRET=foobar
# prog.sh
#!/usr/bin/env sh
source./config.txt
echo $SECRET
Теперь запустите его:
chmod +x prog.sh
./prog.sh
, а затем убедитесь, что переменная SECRET не просочилась в вашу собственную оболочку:
echo $SECRET # <-- must echo a blank line