Bash / echo ба printf

echo ба printf

Дэлгэцэнд текст хэвлэх нь script-н хамгийн энгийн боловч хамгийн өргөн ашиглагддаг үйлдлүүдийн нэг. Debug хийх, хэрэглэгчид мессеж харуулах, log бичих — бүгдэнд хэрэгтэй. Bash дотор үүнд гол хоёр команд бий: echo (хялбар) ба printf (нарийн тохируулга).

echo — Энгийн хэвлэх

echo нь текстийг дэлгэцэнд хэвлэж, мөрийн төгсгөлд автоматаар шинэ мөр (\n) нэмдэг:

bash
echo "Сайн уу!"               # Сайн уу!
echo "Утга: $HOME"            # Утга: /home/username
echo                          # Хоосон мөр хэвлэнэ

Хэдэн ашигтай сонголт:

bash
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-г илүүд үздэг:

bash
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-н гаралтыг уншихад илүү хялбар болгодог:

bash
# Өнгөний тодорхойлолт
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 хаана ашиглах вэ?

bash
#!/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 бичих аргыг сурна.