echo ба printf
Дэлгэцэнд текст хэвлэх нь script-н хамгийн энгийн боловч хамгийн өргөн ашиглагддаг үйлдлүүдийн нэг. Debug хийх, хэрэглэгчид мессеж харуулах, log бичих — бүгдэнд хэрэгтэй. Bash дотор үүнд гол хоёр команд бий: echo (хялбар) ба printf (нарийн тохируулга).
echo — Энгийн хэвлэх
echo нь текстийг дэлгэцэнд хэвлэж, мөрийн төгсгөлд автоматаар шинэ мөр (\n) нэмдэг:
echo "Сайн уу!" # Сайн уу!
echo "Утга: $HOME" # Утга: /home/username
echo # Хоосон мөр хэвлэнэ
Хэдэн ашигтай сонголт:
echo -n "Нэрээ оруулна уу: " # Шинэ мөр нэмэхгүй (input-тай хамт хэрэглэнэ)
echo -e "Мөр1\nМөр2" # Тусгай тэмдэгтүүдийг боловсруулна
echo -e "Таб\tзай" # \t таб зай нэмнэ
-e сонголт дараах escape sequence-үүдийг боловсруулна:
| Тэмдэгт | Утга |
| ------- | ------------------ |
| \n | Шинэ мөр |
| \t | Таб зай |
| \\ | Урвуу налуу зураас |
| \a | Дохионы чимээ |
printf — Форматтай хэвлэх
printf нь C хэлний printf-тэй ижил хэлбэртэй. echo-с илүү нарийн, илүү тогтвортой ажилладаг тул script дотор ихэвчлэн printf-г илүүд үздэг:
printf "Сайн уу!\n" # echo шиг, гэхдээ \n заавал бичнэ
printf "Нэр: %s\n" "Болд" # %s мөр оруулна
printf "Нас: %d\n" 25 # %d бүхэл тоо оруулна
printf "Оноо: %.2f\n" 98.5 # %.2f 2 аравтын бутархайтай тоо
Format specifier-үүд:
| Тэмдэгт | Утга |
| ------- | ------------------------------------------ |
| %s | Мөр (string) |
| %d | Бүхэл тоо (integer) |
| %f | Аравтын тоо (float) |
| %05d | 5 оронтой, тэгээр дүүргэсэн тоо |
| %-10s | 10 тэмдэгтийн өргөнд, зүүн тийш тулсан мөр |
Өнгөтэй текст хэвлэх
Terminal дотор ANSI escape code-ийг ашиглан текстэд өнгө нэмж болно. Энэ нь script-н гаралтыг уншихад илүү хялбар болгодог:
# Өнгөний тодорхойлолт
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color — өнгийг цуцална
echo -e "${GREEN}Амжилттай!${NC}"
echo -e "${RED}Алдаа гарлаа!${NC}"
echo -e "${YELLOW}Анхааруулга:${NC} файл олдсонгүй"
NC (No Color) тэмдэгтийг мартвал дараагийн бүх текст өнгөтэй үргэлжлэнэ — заавал цуцалж байгаарай.
echo ба printf хаана ашиглах вэ?
#!/bin/bash
name="Болд"
score=95
pi=3.14159
# echo — хялбар мессежүүдэд
echo "Script эхэллээ..."
# printf — форматтай гаралтад
printf "%-10s %5d оноо\n" "$name" "$score"
printf "Пи тоо: %.3f\n" "$pi"
echo "Script дууслаа."
Энэ script-г ажиллуулбал:
Script эхэллээ...
Болд 95 оноо
Пи тоо: 3.142
Script дууслаа.
Дараагийн хичээлд:
Хэрэглэгчээс оролт авах — read командыг ашиглан interactive script бичих аргыг сурна.