Add sitemap and styles for Persian font integration

- Created a new sitemap.xml file for better SEO.
- Added a compressed version of the sitemap as sitemap.xml.gz.
- Introduced extra.css for custom styles, including Persian font support (IRANSansX).
- Defined font-face rules for regular and bold styles of IRANSansX.
- Implemented various text styles and layout adjustments for better readability.
- Enhanced Mermaid diagram styles to support Persian text rendering.
This commit is contained in:
2026-04-28 15:27:18 +03:30
commit 99fb7f0e82
303 changed files with 254753 additions and 0 deletions
+303
View File
@@ -0,0 +1,303 @@
# آزمون‌های فصل ۳ — اسکریپت‌نویسی Bash
در این فایل دو آزمون چهارگزینه‌ای ۱۰ سؤالی برای فصل ۳ (و کمی از مباحث انتهای فصل ۲) آورده شده است. سطح سؤالات متوسط رو به بالا است.
---
## آزمون ۱ — Bash مقدماتی و منطق اسکریپت
**سؤال ۱)** هدف اصلی خط زیر در ابتدای اسکریپت Bash چیست؟
`#!/bin/bash`
الف) تبدیل اسکریپت به فایل باینری
ب) مشخص‌کردن مفسر (interpreter) برای اجرای اسکریپت
ج) دادن مجوز اجرایی به فایل
د) تغییر دایرکتوری فعلی هنگام اجرا
**پاسخ صحیح: ب**
**سؤال ۲)** کدام دستور تعریف متغیر در Bash از نظر نگارش درست است؟
الف) `USER NAME="student"`
ب) `USER_NAME = "student"`
ج) `USER_NAME="student"`
د) `USER_NAME: "student"`
**پاسخ صحیح: ج**
**سؤال ۳)** در اسکریپت زیر چه اتفاقی می‌افتد؟
```bash
#!/bin/bash
read -p "Name: " NAME
echo "Hello $NAME!"
```
الف) بدون نمایش چیزی از کاربر ورودی می‌گیرد
ب) فقط متن `"Name: "` را چاپ می‌کند و تمام می‌شود
ج) یک نام از کاربر می‌گیرد و سپس او را با آن نام سلام می‌کند
د) همیشه `"Hello $NAME!"` را بدون گرفتن ورودی چاپ می‌کند
**پاسخ صحیح: ج**
**سؤال ۴)** در یک اسکریپت Bash، متغیر `$1` معمولاً چه چیزی را نگه می‌دارد؟
الف) نام اسکریپت
ب) تعداد آرگومان‌های خط فرمان
ج) اولین آرگومان خط فرمان هنگام اجرای اسکریپت
د) خط جاری در حال اجرا در اسکریپت
**پاسخ صحیح: ج**
**سؤال ۵)** اسکریپت زیر چه زمانی پیام خطا را چاپ می‌کند؟
```bash
#!/bin/bash
AGE="$1"
if [ "$AGE" -gt 18 ]; then
echo "Adult"
elif [ "$AGE" -eq 18 ]; then
echo "Exactly 18"
else
echo "Minor"
fi
```
اگر این اسکریپت با دستور `bash script.sh 18` اجرا شود، خروجی چیست؟
الف) `Adult`
ب) `Exactly 18`
ج) `Minor`
د) هیچ‌چیز چاپ نمی‌شود
**پاسخ صحیح: ب**
**سؤال ۶)** فرض کنید اسکریپت زیر را داریم:
```bash
#!/bin/bash
if [ "$1" = "start" ] || [ "$1" = "stop" ]; then
echo "OK"
else
echo "Invalid"
fi
```
کدام یک از دستورات زیر خروجی `Invalid` تولید می‌کند؟
الف) `bash script.sh start`
ب) `bash script.sh stop`
ج) `bash script.sh START`
د) `bash script.sh start stop`
**پاسخ صحیح: ج**
**سؤال ۷)** خروجی اسکریپت زیر چیست؟
```bash
#!/bin/bash
for N in 1 2 3
do
if [ "$N" -eq 2 ]; then
continue
fi
echo "N=$N"
done
```
الف)
`N=1`
ب)
`N=2`
`N=3`
ج)
`N=1`
`N=3`
د)
`N=1`
`N=2`
`N=3`
**پاسخ صحیح: ج**
**سؤال ۸)** اسکریپت زیر چند خط روی صفحه چاپ می‌کند؟ (بدون درنظر گرفتن خط فرمان `read`)
```bash
#!/bin/bash
COUNT=1
while [ "$COUNT" -le 3 ]
do
echo "Loop $COUNT"
COUNT=$((COUNT + 1))
done
```
الف) هیچ خطی
ب) ۲ خط
ج) ۳ خط
د) ۴ خط
**پاسخ صحیح: ج**
**سؤال ۹)** کدام الگوی وایلدکارد فقط فایل‌هایی مثل `file_01.txt` و `file_12.txt` را می‌گیرد و *فایل `file_100.txt`* را شامل نمی‌شود؟
الف) `file_*.txt`
ب) `file_?.txt`
ج) `file_??.txt`
د) `file_[0-9]*.txt`
**پاسخ صحیح: ج**
**سؤال ۱۰)** دستور زیر چه کاری انجام می‌دهد؟
```bash
tar -czf backup.tar.gz mydir/
```
الف) فایل `backup.tar.gz` را استخراج می‌کند
ب) پوشهٔ `mydir/` را فشرده و در `backup.tar.gz` آرشیو می‌کند
ج) فقط ساختار دایرکتوری `mydir/` را بدون فایل‌ها ذخیره می‌کند
د) محتویات `backup.tar.gz` را روی `mydir/` بازنویسی می‌کند
**پاسخ صحیح: ب**
### پاسخ‌نامه آزمون ۱
- ۱) ب
- ۲) ج
- ۳) ج
- ۴) ج
- ۵) ب
- ۶) ج
- ۷) ج
- ۸) ج
- ۹) ج
- ۱۰) ب
---
## آزمون ۲ — حلقه‌ها، case، توابع، وایلدکارد، فشرده‌سازی و awk
**سؤال ۱)** الگوی زیر در شل کدام نوع فایل‌ها را انتخاب می‌کند؟
`*.[ch]`
الف) همهٔ فایل‌هایی که نامشان فقط یک کاراکتر است
ب) همهٔ فایل‌هایی که پسوندشان `c.` یا `h.` است
ج) همهٔ فایل‌هایی که پسوندشان `c` یا `h` است (مثل `main.c`, `util.h`)
د) هیچ فایلی، چون الگو نادرست است
**پاسخ صحیح: ج**
**سؤال ۲)** امن‌ترین روال برای حذف فایل‌های موقت با الگوی `*.tmp` کدام است؟
الف) مستقیم: `rm *.tmp`
ب) `rm -f *.tmp`
ج) اول `ls *.tmp` برای بررسی، سپس `rm -i *.tmp` برای حذف تعاملی
د) `rm -rf / *.tmp`
**پاسخ صحیح: ج**
**سؤال ۳)** دستور زیر چه کاری می‌کند؟
```bash
tar -tzf backup.tar.gz
```
الف) آرشیو را فشرده می‌کند
ب) آرشیو را استخراج می‌کند
ج) محتویات آرشیو را *بدون استخراج* فهرست می‌کند
د) آرشیو را حذف می‌کند
**پاسخ صحیح: ج**
**سؤال ۴)** کدام گزینه، یک آرشیو zip تکرارشونده از پوشهٔ `project/` می‌سازد؟
الف) `zip project project/`
ب) `zip -r project.zip project/`
ج) `tar -czf project.zip project/`
د) `zip -x project.zip project/`
**پاسخ صحیح: ب**
**سؤال ۵)** کدام دستور awk ستون اول و سوم یک فایل CSV را که با کاما جدا شده چاپ می‌کند؟
الف) `awk '{print $1, $3}' data.csv`
ب) `awk -F, '{print $1, $3}' data.csv`
ج) `awk -F, '{print $0}' data.csv`
د) `awk -F: '{print $1, $3}' data.csv`
**پاسخ صحیح: ب**
**سؤال ۶)** برای محاسبهٔ مجموع اعداد ستون دوم در فایل `prices.txt` با awk کدام دستور مناسب است؟
الف) `awk '{print $2}' prices.txt`
ب) `awk '{sum += $2} END {print sum}' prices.txt`
ج) `awk -F, '{sum += $1} END {print sum}' prices.txt`
د) `awk 'END {print $2}' prices.txt`
**پاسخ صحیح: ب**
**سؤال ۷)** اسکریپت زیر را در نظر بگیرید:
```bash
#!/bin/bash
read -p "Mode (start/stop): " MODE
case "$MODE" in
start)
echo "Starting..."
;;
stop)
echo "Stopping..."
;;
*)
echo "Unknown mode"
;;
esac
```
اگر کاربر مقدار `START` (با حروف بزرگ) را وارد کند، خروجی چیست؟
الف) `Starting...`
ب) `Stopping...`
ج) `Unknown mode`
د) هیچ‌چیز چاپ نمی‌شود
**پاسخ صحیح: ج**
**سؤال ۸)** در اسکریپت زیر خروجی چیست؟
```bash
#!/bin/bash
count=0
inc() {
count=$((count + 1))
}
inc
inc
echo "$count"
```
الف) هیچ خروجی‌ای تولید نمی‌شود
ب) `1`
ج) `2`
د) خطای نحوی رخ می‌دهد
**پاسخ صحیح: ج**
**سؤال ۹)** خروجی اسکریپت زیر چیست؟
```bash
#!/bin/bash
for N in 1 2 3 4
do
if [ "$N" -gt 2 ]; then
break
fi
echo "$N"
done
```
الف)
فقط `1`
ب)
`1`
`2`
ج)
`1`
`2`
`3`
د) هیچ‌چیز چاپ نمی‌شود
**پاسخ صحیح: ب**
**سؤال ۱۰)** اسکریپت زیر را در نظر بگیرید:
```bash
#!/bin/bash
for ARG in "$@"
do
echo "[$ARG]"
done
```
اگر این اسکریپت با دستور زیر اجرا شود:
`bash script.sh "A B" C`
خروجی چیست؟
الف)
`[A]`
`[B]`
`[C]`
ب)
`[A B C]`
ج)
`[A B]`
`[C]`
د) هیچ‌چیز چاپ نمی‌شود
**پاسخ صحیح: ج**
### پاسخ‌نامه آزمون ۲
- ۱) ج
- ۲) ج
- ۳) ج
- ۴) ب
- ۵) ب
- ۶) ب
- ۷) ج
- ۸) ج
- ۹) ب
- ۱۰) ج