رفتن به محتوا
LoopX

آزمون میانه‌ی دوره‌ی Bash

این آزمون دو بخش اول دوره (مبانی و ساختارمند نوشتن) را با ۲۵ سؤال سناریویی می‌سنجد؛ شبیه مشکل‌هایی که واقعاً سر کار پیش می‌آید. بعد از هر پاسخ، جواب درست و توضیح را می‌بینی و نتیجه‌ی نهایی در پیشرفت من ذخیره می‌شود.

؟ آزمون میانه‌ی دوره‌ی Bash
  1. اسکریپتی را همکارت روی ویندوز نوشته. روی سرور ./deploy.sh خطای «/usr/bin/env: ‘bash\r’: No such file or directory» می‌دهد. چه می‌کنی؟

  2. اسکریپتی در /tmp با chmod +x ساخته‌ای. ./run.sh باز Permission denied می‌دهد ولی bash run.sh کار می‌کند. محتمل‌ترین علت؟

  3. اسکریپت go.sh فقط cd /var/log دارد. بعد از ./go.sh هنوز در پوشه‌ی قبلی هستی. چه می‌کنی؟

  4. cron اسکریپتی را اجرا می‌کند که وسطش tar خطا می‌دهد ولی دستور آخرش echo done است. cron چه می‌بیند؟

  5. file="Q3 report.pdf" و در اسکریپت rm $file نوشته‌ای. چه اتفاقی می‌افتد؟

  6. ماه را با date +%m گرفته‌ای (مثلاً 08) و $((month + 1)) خطای «value too great for base» می‌دهد. راه‌حل؟

  7. اسکریپتی باید همه‌ی آرگومان‌هایش را به tar -czf بدهد و آرگومان‌های دارای فاصله هم کار کنند. کدام شکل درست است؟

  8. در اسکریپتی echo "10 20" | read a b; echo $a خالی چاپ می‌کند. چرا و راه‌حل؟

  9. رمز دیتابیس را به‌صورت آرگومان به اسکریپت می‌دهی (./backup.sh --password s3cret). مشکل چیست؟

  10. if grep -q error app.log; then echo found; else echo clean; fi وقتی app.log اصلاً وجود ندارد چه می‌گوید؟

  11. کد [[ $free > $limit ]] برای free=9 و limit=10 چه می‌گوید و چرا؟

  12. در اسکریپت سرویس: case "$1" in start) ...;; *) usage;; stop) ...;; esac — چرا stop هیچ‌وقت کار نمی‌کند؟

  13. for f in *.log; do gzip "$f"; done در پوشه‌ای بدون هیچ فایل .log چه می‌کند؟

  14. n=0; cat servers.txt | while read -r s; do ((n++)); done; echo $n چه چاپ می‌کند؟

  15. while read -r host; do ssh "$host" uptime; done < hosts.txt فقط برای میزبان اول اجرا می‌شود. چرا؟

  16. اسکریپتی با ./with-label.sh build ls -l اجرا می‌شود و می‌خواهد build را برچسب بگیرد و بقیه را به‌عنوان یک دستور اجرا کند. کدام الگو درست است؟

  17. تابعی با حلقه‌ی for i in 1 2 ... متغیر i بیرونی را خراب می‌کند. راه‌حل؟

  18. die() { echo "Error: $*" >&2; return 1; } را صدا می‌زنی ولی اسکریپت ادامه می‌دهد. چرا؟

  19. servers=("web 1" "web 2") و for s in ${servers[@]} چند بار اجرا می‌شود و چرا؟

  20. می‌خواهی تعداد درخواست هر IP را از یک لاگ بشماری و در اسکریپت به کار ببری. کدام ساختار مناسب است؟

  21. اسکریپتی با declare -A روی مک خطای «declare: -A: invalid option» می‌دهد. علت؟

  22. مسیر p=/var/www/site/index.html را داری. پوشه‌اش (بدون dirname) کدام است؟

  23. اولین خط اسکریپت backup="${1:?usage: backup.sh <dir>}" است. بدون آرگومان چه می‌شود؟

  24. فایل nginx را با cat <<EOF می‌سازی و در فایل نهایی try_files و proxy_set_header Host $host خالی شده‌اند. راه‌حل؟

  25. کدام خط لاگ nginx را به «تعداد درخواست هر IP، از زیاد به کم» تبدیل می‌کند؟