for, while, until va quvurlar bilan matnni qayta ishlash
10-sinfDevOps4-hafta ยท 12-darsRo'yxat, diapazon {1..5} va fayllar bo'yicha takrorlash.
Shart bo'yicha takrorlash, break va continue.
while read va quvur: sort | uniq | wc.
for pkg in docker.io ... ; do sudo apt-get remove $pkg; doneRo'yxatdagi har bir element uchun
Qismlar ustiga bosing.
for ISM in Ali Vali Soli; do
echo "Salom, $ISM"
donefor i in {1..5}; do
echo $i
donefor ((i=0; i<3; i++)); do
echo $i
donefor F in *.txt; do
echo "Fayl: $F"
done
for i in {1..5}; do
echo "Aylanish: $i"
done
echo "Tugadi"
Aylanish: 1
Aylanish: 2
Aylanish: 3
Aylanish: 4
Aylanish: 5
TugadiShart bo'yicha takrorlash
n=3
while [ $n -gt 0 ]; do ...Shart rost ekan davom etadi.k=0
until [ $k -ge 3 ]; do ...Shart rost bo'lmaguncha davom etadi.Qismlarni bosing.
n=3
while [ $n -gt 0 ]; do
echo $n
n=$((n - 1))
done
k=0
until [ $k -ge 3 ]; do
echo $k; k=$((k + 1))
done
while true; do ...; done cheksiz sikl; Ctrl+C bilan to'xtatiladi (qo'llanmada yuklama berish misoli).
n=3
while [ $n -gt 0 ]; do
echo $n
done
n o'zgarmaydi: shart doim rost. Ctrl+C!
n=3
while [ $n -gt 0 ]; do
echo $n
n=$((n - 1))
done
Hisoblagich kamaygani uchun sikl tugaydi.
Pastga bosing: misol.
for i in 1 2 3 4 5; do
[ $i -eq 2 ] && continue
[ $i -eq 4 ] && break
echo $i
done # 1 3
for i in {1..5}; do [ $i -eq 3 ] && break; echo $i; done nima chiqaradi?
i 3 bo'lganda break siklni to'xtatadi, shuning uchun faqat 1 va 2 chiqadi.Fayl va quvur bilan ishlash
Qismlarni bosing.
Qismlarni bosing.
#!/bin/bash
N=0
while read -r QATOR; do
N=$((N + 1))
echo "$N. $QATOR"
done < royxat.txt
done < royxat.txt ni unutsangiz, read klaviaturadan kutadi.$ printf "a\nb\nc\na\n" > royxat.txt
$ sort royxat.txt | uniq -c
2 a
1 b
1 c
$ cut -d: -f1 /etc/passwd | head -2
$ ls ~ | wc -luniq faqat ketma-ket takrorlarni oladi, shuning uchun avval sort.cat royxat.txt: matn oqimi.
| sort: bir xil qatorlar yonma-yon.
| uniq yoki uniq -c.
| wc -l: noyob qatorlar soni.
done < fayl yo'q: read klaviaturani kutadi.sort siz uniq: takrorlar qoladi.for F in $(ls): nomida bo'sh joy bo'lsa buziladi.until shartini while kabi o'qish.Fayldagi noyob qatorlar sonini qaysi quvur beradi?
sort bir xil qatorlarni yonma-yon qiladi, uniq takrorni olib tashlaydi, wc -l sanaydi.for bilan 1 dan 10 gacha sonlarni chiqaring.while bilan 10 dan 1 gacha sanab, oxirida "Start!" deng./etc/passwd foydalanuvchi nomlarini cut va while read bilan raqamlab chiqaring, jami sonni ko'rsating.for, while, until, break, continue, while read, quvurlar.
hisobot.sh: qatorlarni raqamlash va noyob qatorlar soni.
5-hafta: grep, sed, awk, xargs.