Environment variable
Environment variable бол үйлдлийн системийн хэмжээнд хадгалагдах нэр-утга хосууд юм. Програм бүр эдгээр утгыг унших боломжтой. Нууц үг, API key, тохиргооны мэдээллийг кодонд шууд бичихгүйгээр environment variable-д хадгалах нь хөгжүүлэлтийн хамгийн чухал дадлагуудын нэг.
Байгаа environment variable-уудыг харах
# Бүх environment variable-уудыг жагсаах
env
printenv
# Тодорхой variable-ийн утгыг харах
echo $HOME # /home/batbold
echo $USER # batbold
echo $PATH # /usr/local/bin:/usr/bin:/bin:...
echo $SHELL # /bin/bash
echo $PWD # Одоогийн директор
# printenv-ээр нэг variable харах
printenv HOME
Хамгийн чухал суурь variable-ууд:
echo $HOME # Хэрэглэгчийн home директор
echo $PATH # Команд хайх директоруудын жагсаалт
echo $USER # Одоогийн хэрэглэгчийн нэр
echo $HOSTNAME # Компьютерийн нэр
echo $LANG # Хэлний тохиргоо
echo $EDITOR # Анхдагч текст засварлагч
Variable тодорхойлох ба ашиглах
# Shell variable — зөвхөн одоогийн shell-д харагдана
MY_NAME="Батболд"
echo $MY_NAME
# Environment variable болгон экспортлох (дэд процессуудад харагдана)
export MY_NAME="Батболд"
export DB_HOST="localhost"
export DB_PORT="5432"
# Нэг мөрөнд тодорхойлж экспортлох
export API_KEY="abc123xyz"
# Унших
echo "Сайн уу, $MY_NAME!"
echo "Database: $DB_HOST:$DB_PORT"
export хийгдээгүй variable нь зөвхөн одоогийн shell-д харагдана. Script эсвэл дэд командуудад дамжуулах бол export шаардлагатай.
.env файл — нууц тохиргоог хадгалах
.env файл нь тохиргооны утгуудыг нэг газар цуглуулдаг. Git-д хэзээ ч commit хийлгэхгүй!
# .env файлын агуулга
DB_HOST=localhost
DB_PORT=5432
DB_NAME=myapp
DB_USER=admin
DB_PASS=supersecret123
API_KEY=pk_live_abc123
APP_ENV=production
Script-д .env файлыг ачаалах:
#!/bin/bash
# .env файл байвал ачаалах
if [ -f .env ]; then
export $(cat .env | grep -v '^#' | xargs)
echo ".env файл ачааллаа"
fi
echo "Database: $DB_HOST:$DB_PORT/$DB_NAME"
echo "Орчин: $APP_ENV"
PATH variable
PATH нь командуудыг хаанаас хайхыг тодорхойлдог. Шинэ программ суулгасны дараа PATH-д нэмэх хэрэгтэй болдог:
# PATH-ийн одоогийн утгыг харах
echo $PATH
# /usr/local/bin:/usr/bin:/bin:/usr/local/sbin
# PATH-д шинэ директор нэмэх
export PATH="$PATH:/home/batbold/scripts"
# Энэ өөрчлөлт зөвхөн одоогийн session-д үйлчилнэ
# Байнгын болгохын тулд ~/.bashrc эсвэл ~/.bash_profile-д нэмнэ
~/.bashrc ба ~/.bash_profile
Shell нээгдэх бүрт автоматаар уншигддаг файлууд:
# ~/.bashrc файлд байнгын тохиргоо нэмэх
echo 'export EDITOR="vim"' >> ~/.bashrc
echo 'export MY_SCRIPTS="/home/batbold/scripts"' >> ~/.bashrc
echo 'export PATH="$PATH:$MY_SCRIPTS"' >> ~/.bashrc
# Өөрчлөлтийг одоогийн session-д тэр дор хэрэгжүүлэх
source ~/.bashrc
# эсвэл
. ~/.bashrc
Практик жишээ
#!/bin/bash
# Environment variable-ын утгыг шалгаж, байхгүй бол анхдагч утга ашиглах
DB_HOST="${DB_HOST:-localhost}"
DB_PORT="${DB_PORT:-5432}"
APP_ENV="${APP_ENV:-development}"
echo "Тохиргоо:"
echo " Database: $DB_HOST:$DB_PORT"
echo " Орчин: $APP_ENV"
# Заавал шаардлагатай variable байгаа эсэхийг шалгах
if [ -z "$API_KEY" ]; then
echo "Алдаа: API_KEY тохируулаагүй байна!"
exit 1
fi
echo " API key: ${API_KEY:0:8}..." # Зөвхөн эхний 8 тэмдэгтийг харуулна
${VARIABLE:-default} хэлбэр нь variable хоосон байвал анхдагч утга ашиглах маш хэрэгтэй арга. -z нь variable хоосон эсэхийг шалгадаг — хоосон бол true.
Дараагийн хичээлд:
Script аргументуудыг судална — $1, $2, $@, $# ашиглан script-дээ гаднаас утга дамжуулах, уян хатан script бичих арга.