Хувьсагч үндэс
Хувьсагч (variable) бол өгөгдлийг түр хадгалах нэртэй сав юм. Нэг удаа утга хадгалаад дараа дахин ашигладаг. Bash дахь хувьсагч нь бусад програмчлалын хэлүүдийнхтэй адил зарчмаар ажиллах боловч бичих дүрмийн хувьд өвөрмөц онцлогтой.
Хувьсагч тодорхойлох
Хувьсагчийг нэр=утга хэлбэрээр тодорхойлно. Чухал: = тэмдгийн хоёр талд зай байж болохгүй — энэ бол Bash-н хамгийн их алдаа гаргадаг хэсэг.
name="Болд"
age=25
city="Улаанбаатар"
is_developer=true
Зай байвал Bash алдаа гаргана:
name = "Болд" # БУРУУ — зай байж болохгүй
name="Болд" # ЗӨВЛӨМЖ — ийнхүү бичнэ
Хувьсагчийн утгыг ашиглах
Хувьсагчийн утгыг уншихдаа нэрийн өмнө $ тавина:
name="Болд"
echo $name # Болд
echo "Сайн уу, $name!" # Сайн уу, Болд!
Хувьсагчийн нэрийг текстэд найдвартай оруулахын тулд ${} хэлбэрийг ашиглах нь зөв дадал:
language="Bash"
echo "Би ${language} сурч байна" # Би Bash сурч байна
echo "${language}Script" # BashScript — нэрийн хилийг тодруулна
Хашилтын ялгаа
Bash дотор хашилтын төрөл чухал — хувьсагч ажиллах эсэхийг шийддэг:
name="Болд"
echo "Сайн уу, $name" # Хувьсагч боловсруулагдана → Сайн уу, Болд
echo 'Сайн уу, $name' # Хувьсагч боловсруулагдахгүй → Сайн уу, $name
Давхар хашилт " — хувьсагч ба тусгай тэмдэгтүүдийг боловсруулна.
Нэг хашилт ' — бүгдийг текст хэлбэрээр шууд харуулна.
Тооцооллын үр дүн хадгалах
Командын гаралтыг хувьсагчид хадгалахдаа $() (command substitution) ашиглана:
today=$(date)
echo "Өнөөдөр: $today"
current_dir=$(pwd)
echo "Одоогийн директор: $current_dir"
file_count=$(ls | wc -l)
echo "Файлын тоо: $file_count"
Тусгай хувьсагчид
Bash дотор урьдчилан тодорхойлогдсон тусгай хувьсагчид байдаг:
echo $HOME # Home директорын зам (/home/username)
echo $USER # Нэвтэрсэн хэрэглэгчийн нэр
echo $PATH # Команд хайдаг директоруудын жагсаалт
echo $PWD # Одоогийн директорын зам (pwd шиг)
echo $SHELL # Ашиглаж буй shell-н зам
echo $$ # Одоогийн процессийн PID
echo $? # Өмнөх командын exit code (0 = амжилттай)
Эдгээрийг echo-гоор харвал систем ба орчны тухай маш их мэдэлэл авч болно.
Хувьсагчийг устгах
name="Болд"
echo $name # Болд
unset name
echo $name # (хоосон — хувьсагч устсан)
Дараагийн хичээлд:
echo ба printf командуудыг гүнзгий судална — текстийг янз бүрийн хэлбэрээр, өнгөтэйгөөр дэлгэцэнд хэвлэх аргыг сурна.