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:
+303
@@ -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]`
|
||||
|
||||
د) هیچچیز چاپ نمیشود
|
||||
**پاسخ صحیح: ج**
|
||||
|
||||
### پاسخنامه آزمون ۲
|
||||
- ۱) ج
|
||||
- ۲) ج
|
||||
- ۳) ج
|
||||
- ۴) ب
|
||||
- ۵) ب
|
||||
- ۶) ب
|
||||
- ۷) ج
|
||||
- ۸) ج
|
||||
- ۹) ب
|
||||
- ۱۰) ج
|
||||
Reference in New Issue
Block a user