Files
nearology 99fb7f0e82 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.
2026-04-28 15:27:18 +03:30

8.3 KiB
Raw Permalink Blame History

آزمون‌های فصل ۳ — اسکریپت‌نویسی Bash

در این فایل دو آزمون چهارگزینه‌ای ۱۰ سؤالی برای فصل ۳ (و کمی از مباحث انتهای فصل ۲) آورده شده است. سطح سؤالات متوسط رو به بالا است.


آزمون ۱ — Bash مقدماتی و منطق اسکریپت

سؤال ۱) هدف اصلی خط زیر در ابتدای اسکریپت Bash چیست؟
#!/bin/bash
الف) تبدیل اسکریپت به فایل باینری
ب) مشخص‌کردن مفسر (interpreter) برای اجرای اسکریپت
ج) دادن مجوز اجرایی به فایل
د) تغییر دایرکتوری فعلی هنگام اجرا
پاسخ صحیح: ب

سؤال ۲) کدام دستور تعریف متغیر در Bash از نظر نگارش درست است؟
الف) USER NAME="student"
ب) USER_NAME = "student"
ج) USER_NAME="student"
د) USER_NAME: "student"
پاسخ صحیح: ج

سؤال ۳) در اسکریپت زیر چه اتفاقی می‌افتد؟

#!/bin/bash
read -p "Name: " NAME
echo "Hello $NAME!"

الف) بدون نمایش چیزی از کاربر ورودی می‌گیرد
ب) فقط متن "Name: " را چاپ می‌کند و تمام می‌شود
ج) یک نام از کاربر می‌گیرد و سپس او را با آن نام سلام می‌کند
د) همیشه "Hello $NAME!" را بدون گرفتن ورودی چاپ می‌کند
پاسخ صحیح: ج

سؤال ۴) در یک اسکریپت Bash، متغیر $1 معمولاً چه چیزی را نگه می‌دارد؟
الف) نام اسکریپت
ب) تعداد آرگومان‌های خط فرمان
ج) اولین آرگومان خط فرمان هنگام اجرای اسکریپت
د) خط جاری در حال اجرا در اسکریپت
پاسخ صحیح: ج

سؤال ۵) اسکریپت زیر چه زمانی پیام خطا را چاپ می‌کند؟

#!/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
د) هیچ‌چیز چاپ نمی‌شود
پاسخ صحیح: ب

سؤال ۶) فرض کنید اسکریپت زیر را داریم:

#!/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
پاسخ صحیح: ج

سؤال ۷) خروجی اسکریپت زیر چیست؟

#!/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)

#!/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
پاسخ صحیح: ج

سؤال ۱۰) دستور زیر چه کاری انجام می‌دهد؟

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
پاسخ صحیح: ج

سؤال ۳) دستور زیر چه کاری می‌کند؟

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
پاسخ صحیح: ب

سؤال ۷) اسکریپت زیر را در نظر بگیرید:

#!/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
د) هیچ‌چیز چاپ نمی‌شود
پاسخ صحیح: ج

سؤال ۸) در اسکریپت زیر خروجی چیست؟

#!/bin/bash
count=0
inc() {
  count=$((count + 1))
}
inc
inc
echo "$count"

الف) هیچ خروجی‌ای تولید نمی‌شود
ب) 1
ج) 2
د) خطای نحوی رخ می‌دهد
پاسخ صحیح: ج

سؤال ۹) خروجی اسکریپت زیر چیست؟

#!/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

د) هیچ‌چیز چاپ نمی‌شود
پاسخ صحیح: ب

سؤال ۱۰) اسکریپت زیر را در نظر بگیرید:

#!/bin/bash
for ARG in "$@"
do
  echo "[$ARG]"
done

اگر این اسکریپت با دستور زیر اجرا شود:
bash script.sh "A B" C
خروجی چیست؟
الف)
[A]
[B]
[C]

ب)
[A B C]

ج)
[A B]
[C]

د) هیچ‌چیز چاپ نمی‌شود
پاسخ صحیح: ج

پاسخ‌نامه آزمون ۲

  • ۱) ج
  • ۲) ج
  • ۳) ج
  • ۴) ب
  • ۵) ب
  • ۶) ب
  • ۷) ج
  • ۸) ج
  • ۹) ب
  • ۱۰) ج