آزمونهای فصل ۳ — اسکریپتنویسی Bash
در این فایل دو آزمون چهارگزینهای ۱۰ سؤالی برای فصل ۳ (و کمی از مباحث انتهای فصل ۲) آورده شده است. سطح سؤالات متوسط رو به بالا است.
آزمون ۱ — Bash مقدماتی و منطق اسکریپت
سؤال ۱) هدف اصلی خط زیر در ابتدای اسکریپت Bash چیست؟
#!/bin/bash
الف) تبدیل اسکریپت به فایل باینری
ب) مشخصکردن مفسر (interpreter) برای اجرای اسکریپت
ج) دادن مجوز اجرایی به فایل
د) تغییر دایرکتوری فعلی هنگام اجرا
پاسخ صحیح: ب
سؤال ۲) کدام دستور تعریف متغیر در Bash از نظر نگارش درست است؟
الف) USER NAME="student"
ب) USER_NAME = "student"
ج) USER_NAME="student"
د) USER_NAME: "student"
پاسخ صحیح: ج
سؤال ۳) در اسکریپت زیر چه اتفاقی میافتد؟
ب) فقط متن
"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د) هیچچیز چاپ نمیشود
پاسخ صحیح: ب
سؤال ۶) فرض کنید اسکریپت زیر را داریم:
Invalid تولید میکند؟الف)
bash script.sh startب)
bash script.sh stopج)
bash script.sh STARTد)
bash script.sh start stopپاسخ صحیح: ج
سؤال ۷) خروجی اسکریپت زیر چیست؟
N=1
ب)
N=2
N=3
ج)
N=1
N=3
د)
N=1
N=2
N=3
پاسخ صحیح: ج
سؤال ۸) اسکریپت زیر چند خط روی صفحه چاپ میکند؟ (بدون درنظر گرفتن خط فرمان read)
ب) ۲ خط
ج) ۳ خط
د) ۴ خط
پاسخ صحیح: ج
سؤال ۹) کدام الگوی وایلدکارد فقط فایلهایی مثل file_01.txt و file_12.txt را میگیرد و فایل file_100.txt را شامل نمیشود؟
الف) file_*.txt
ب) file_?.txt
ج) file_??.txt
د) file_[0-9]*.txt
پاسخ صحیح: ج
سؤال ۱۰) دستور زیر چه کاری انجام میدهد؟
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
پاسخ صحیح: ج
سؤال ۳) دستور زیر چه کاری میکند؟
ب) آرشیو را استخراج میکند
ج) محتویات آرشیو را بدون استخراج فهرست میکند
د) آرشیو را حذف میکند
پاسخ صحیح: ج
سؤال ۴) کدام گزینه، یک آرشیو 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د) هیچچیز چاپ نمیشود
پاسخ صحیح: ج
سؤال ۸) در اسکریپت زیر خروجی چیست؟
ب)
1ج)
2د) خطای نحوی رخ میدهد
پاسخ صحیح: ج
سؤال ۹) خروجی اسکریپت زیر چیست؟
فقط
1
ب)
1
2
ج)
1
2
3
د) هیچچیز چاپ نمیشود
پاسخ صحیح: ب
سؤال ۱۰) اسکریپت زیر را در نظر بگیرید:
bash script.sh "A B" Cخروجی چیست؟
الف)
[A][B][C]
ب)
[A B C]
ج)
[A B]
[C]
د) هیچچیز چاپ نمیشود
پاسخ صحیح: ج
پاسخنامه آزمون ۲
- ۱) ج
- ۲) ج
- ۳) ج
- ۴) ب
- ۵) ب
- ۶) ب
- ۷) ج
- ۸) ج
- ۹) ب
- ۱۰) ج