Переменные окружения
Управление процессами через переменные окружения
Установленные переменные окружения
Установка переменных окружения
$ cat .bashrc
...
export http_proxy=http://proxy.isp.un:3128/
export https_proxy=http://proxy.isp.un:3128/
export no_proxy=localhost,127.0.0.1,isp.un,corpX.un
...
# cat /etc/skel/.pam_environment
# cat /etc/environment
...
#http_proxy=http://gate.corpX.un:3128
https_proxy=http://gate.corpX.un:3128
no_proxy=localhost,127.0.0.1,isp.un,corpX.un
$ set -a; source .env; set +a
$ LANG="" date
$ LANG="ru_RU.UTF-8" date
$ EDITOR=nano crontab -e
$ export http_proxy=http://gate.corpX.un:3128
$ wget http://gate.isp.un/virus.zip
Присваивание значений переменным окружения в shell
Статические значения
Текстовые
$ a=Hello
$ set | grep '^a'
$ echo $a
$ export a
$ env | grep '^a'
$ dir=/bin
$ ls -l $dir
$ echo $a
$ a=pwd
$ $a
$ a='Hello World'
$ a="Hello World"
$ a=Hello\ World
$ a="Hello"
$ b=$a
$ b='$a World'
$ b="$a World"
$ b=$a\ World
$ b=\$a\ World
$ b=$aWorld
$ b=${a}World
Арифметические
$ a=3+6
$ a=$((3+6))
$ a=$((a*6))
Результаты выполнения программ
$ dir=`pwd`
$ dir=$(pwd)
$ cd $dir
$ d=`date '+%Y.%m.%d'`
$ rnd=`jot -r 1 1 10`
$ filecount=`ls /bin | wc -l`
$ a=1
$ a=$(echo 30/7 | bc -l)
Ввод пользователя
$ echo -n "Enter Name: "; read a; echo Hello "$a"
SHELL подстановки имен файлов
Чтение значений переменных окружения
$ request='GET /index.html HTTP/1.1'
$ echo ${request#GET /}
$ echo ${request% HTTP*}
$ PHONE=''
$ unset PHONE
$ PHONE=84951111111
$ echo ${PHONE:-84959999999}
BRANCH=${1:-master}
bash$ PHONE=+74951234569
bash$ echo ${PHONE: -10}
Аргументы приложения
set a b c
echo $3 $2 $1 $*
Удаление переменных окружения