Shell Scripting Exercises: Intermediate (EN)
These exercises deepen CLI-Design, Funktionen, getopts, Textverarbeitung, Fehlerbehandlung und Cleanup. Every task requires reproducible evidence, not only a description.
Submission Format
- script or patch
- test data used
- commands executed
- exit codes
- short risk and recovery note
Tasks
Task 01: quoting
Build a small script or improve an existing example focused on quoting.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 02: exit codes
Build a small script or improve an existing example focused on exit codes.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 03: pipelines
Build a small script or improve an existing example focused on pipelines.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 04: getopts
Build a small script or improve an existing example focused on getopts.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 05: trap
Build a small script or improve an existing example focused on trap.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 06: mktemp
Build a small script or improve an existing example focused on mktemp.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 07: text processing
Build a small script or improve an existing example focused on text processing.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 08: security
Build a small script or improve an existing example focused on security.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 09: quoting
Build a small script or improve an existing example focused on quoting.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 10: exit codes
Build a small script or improve an existing example focused on exit codes.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 11: pipelines
Build a small script or improve an existing example focused on pipelines.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 12: getopts
Build a small script or improve an existing example focused on getopts.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 13: trap
Build a small script or improve an existing example focused on trap.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 14: mktemp
Build a small script or improve an existing example focused on mktemp.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 15: text processing
Build a small script or improve an existing example focused on text processing.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 16: security
Build a small script or improve an existing example focused on security.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 17: quoting
Build a small script or improve an existing example focused on quoting.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 18: exit codes
Build a small script or improve an existing example focused on exit codes.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 19: pipelines
Build a small script or improve an existing example focused on pipelines.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 20: getopts
Build a small script or improve an existing example focused on getopts.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 21: trap
Build a small script or improve an existing example focused on trap.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 22: mktemp
Build a small script or improve an existing example focused on mktemp.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 23: text processing
Build a small script or improve an existing example focused on text processing.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 24: security
Build a small script or improve an existing example focused on security.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 25: quoting
Build a small script or improve an existing example focused on quoting.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 26: exit codes
Build a small script or improve an existing example focused on exit codes.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 27: pipelines
Build a small script or improve an existing example focused on pipelines.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 28: getopts
Build a small script or improve an existing example focused on getopts.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 29: trap
Build a small script or improve an existing example focused on trap.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 30: mktemp
Build a small script or improve an existing example focused on mktemp.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 31: text processing
Build a small script or improve an existing example focused on text processing.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 32: security
Build a small script or improve an existing example focused on security.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 33: quoting
Build a small script or improve an existing example focused on quoting.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 34: exit codes
Build a small script or improve an existing example focused on exit codes.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 35: pipelines
Build a small script or improve an existing example focused on pipelines.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Task 36: getopts
Build a small script or improve an existing example focused on getopts.
Requirements:
bash -nmust pass.- Invalid inputs must return an explainable exit code.
- Human and machine output must be separated.
- The script must not use production paths or secrets.
Evidence:
bash -n script.sh
./script.sh --help
./script.sh --dry-run
echo "$?"
Solution Notes
Use small functions, consistent quoting and a clear usage function. Write down the error path first and then the happy path. Dry-run is mandatory for destructive operations.
Review Checklist for Exercises Intermediate
- 01. name the shebang and target shell explicitly: Record the affected file, command, exit code and risk.
- 02. quote variable expansions unless word splitting is deliberate: Record the affected file, command, exit code and risk.
- 03. validate inputs before they influence filenames, options or commands: Record the affected file, command, exit code and risk.
- 04. evaluate and document exit codes explicitly: Record the affected file, command, exit code and risk.
- 05. separate stderr and stdout: Record the affected file, command, exit code and risk.
- 06. create temporary files with
mktemp: Record the affected file, command, exit code and risk. - 07. test cleanup through
trap: Record the affected file, command, exit code and risk. - 08. guard destructive operations with dry-run, scope checks and confirmation: Record the affected file, command, exit code and risk.
- 09. never print or commit secrets: Record the affected file, command, exit code and risk.
- 10. check PATH and external dependencies: Record the affected file, command, exit code and risk.
- 11. handle ShellCheck warnings or suppress them with a reason: Record the affected file, command, exit code and risk.
- 12. document portability assumptions between Bash and POSIX sh: Record the affected file, command, exit code and risk.
- 13. name the shebang and target shell explicitly: Record the affected file, command, exit code and risk.
- 14. quote variable expansions unless word splitting is deliberate: Record the affected file, command, exit code and risk.
- 15. validate inputs before they influence filenames, options or commands: Record the affected file, command, exit code and risk.
- 16. evaluate and document exit codes explicitly: Record the affected file, command, exit code and risk.
- 17. separate stderr and stdout: Record the affected file, command, exit code and risk.
- 18. create temporary files with
mktemp: Record the affected file, command, exit code and risk. - 19. test cleanup through
trap: Record the affected file, command, exit code and risk. - 20. guard destructive operations with dry-run, scope checks and confirmation: Record the affected file, command, exit code and risk.
- 21. never print or commit secrets: Record the affected file, command, exit code and risk.
- 22. check PATH and external dependencies: Record the affected file, command, exit code and risk.
- 23. handle ShellCheck warnings or suppress them with a reason: Record the affected file, command, exit code and risk.
- 24. document portability assumptions between Bash and POSIX sh: Record the affected file, command, exit code and risk.
- 25. name the shebang and target shell explicitly: Record the affected file, command, exit code and risk.
- 26. quote variable expansions unless word splitting is deliberate: Record the affected file, command, exit code and risk.
- 27. validate inputs before they influence filenames, options or commands: Record the affected file, command, exit code and risk.
- 28. evaluate and document exit codes explicitly: Record the affected file, command, exit code and risk.
- 29. separate stderr and stdout: Record the affected file, command, exit code and risk.
- 30. create temporary files with
mktemp: Record the affected file, command, exit code and risk. - 31. test cleanup through
trap: Record the affected file, command, exit code and risk. - 32. guard destructive operations with dry-run, scope checks and confirmation: Record the affected file, command, exit code and risk.
- 33. never print or commit secrets: Record the affected file, command, exit code and risk.
- 34. check PATH and external dependencies: Record the affected file, command, exit code and risk.
- 35. handle ShellCheck warnings or suppress them with a reason: Record the affected file, command, exit code and risk.
- 36. document portability assumptions between Bash and POSIX sh: Record the affected file, command, exit code and risk.
- 37. name the shebang and target shell explicitly: Record the affected file, command, exit code and risk.
- 38. quote variable expansions unless word splitting is deliberate: Record the affected file, command, exit code and risk.
- 39. validate inputs before they influence filenames, options or commands: Record the affected file, command, exit code and risk.
- 40. evaluate and document exit codes explicitly: Record the affected file, command, exit code and risk.
- 41. separate stderr and stdout: Record the affected file, command, exit code and risk.
- 42. create temporary files with
mktemp: Record the affected file, command, exit code and risk. - 43. test cleanup through
trap: Record the affected file, command, exit code and risk. - 44. guard destructive operations with dry-run, scope checks and confirmation: Record the affected file, command, exit code and risk.
- 45. never print or commit secrets: Record the affected file, command, exit code and risk.
- 46. check PATH and external dependencies: Record the affected file, command, exit code and risk.
- 47. handle ShellCheck warnings or suppress them with a reason: Record the affected file, command, exit code and risk.
- 48. document portability assumptions between Bash and POSIX sh: Record the affected file, command, exit code and risk.
- 49. name the shebang and target shell explicitly: Record the affected file, command, exit code and risk.
- 50. quote variable expansions unless word splitting is deliberate: Record the affected file, command, exit code and risk.
Practice Appendix: Exercises Intermediate
This appendix is a working backlog for longer trainings, reviews and repetitions. Each task can be checked locally with Bash, test data and a Git repository.
A001. quoting
- Task: validate input and connect the observation explicitly to
quoting. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A002. exit codes
- Task: explain exit code and connect the observation explicitly to
exit codes. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A003. pipelines
- Task: check quoting and connect the observation explicitly to
pipelines. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A004. getopts
- Task: test error path and connect the observation explicitly to
getopts. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A005. trap
- Task: review log output and connect the observation explicitly to
trap. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A006. mktemp
- Task: trace cleanup and connect the observation explicitly to
mktemp. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A007. text processing
- Task: scope portability and connect the observation explicitly to
text processing. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A008. security
- Task: mark security risk and connect the observation explicitly to
security. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A009. quoting
- Task: document recovery path and connect the observation explicitly to
quoting. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A010. exit codes
- Task: write review rule and connect the observation explicitly to
exit codes. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A011. pipelines
- Task: validate input and connect the observation explicitly to
pipelines. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A012. getopts
- Task: explain exit code and connect the observation explicitly to
getopts. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A013. trap
- Task: check quoting and connect the observation explicitly to
trap. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A014. mktemp
- Task: test error path and connect the observation explicitly to
mktemp. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A015. text processing
- Task: review log output and connect the observation explicitly to
text processing. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A016. security
- Task: trace cleanup and connect the observation explicitly to
security. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A017. quoting
- Task: scope portability and connect the observation explicitly to
quoting. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A018. exit codes
- Task: mark security risk and connect the observation explicitly to
exit codes. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A019. pipelines
- Task: document recovery path and connect the observation explicitly to
pipelines. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A020. getopts
- Task: write review rule and connect the observation explicitly to
getopts. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A021. trap
- Task: validate input and connect the observation explicitly to
trap. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A022. mktemp
- Task: explain exit code and connect the observation explicitly to
mktemp. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A023. text processing
- Task: check quoting and connect the observation explicitly to
text processing. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A024. security
- Task: test error path and connect the observation explicitly to
security. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A025. quoting
- Task: review log output and connect the observation explicitly to
quoting. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A026. exit codes
- Task: trace cleanup and connect the observation explicitly to
exit codes. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A027. pipelines
- Task: scope portability and connect the observation explicitly to
pipelines. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A028. getopts
- Task: mark security risk and connect the observation explicitly to
getopts. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A029. trap
- Task: document recovery path and connect the observation explicitly to
trap. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A030. mktemp
- Task: write review rule and connect the observation explicitly to
mktemp. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A031. text processing
- Task: validate input and connect the observation explicitly to
text processing. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A032. security
- Task: explain exit code and connect the observation explicitly to
security. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A033. quoting
- Task: check quoting and connect the observation explicitly to
quoting. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A034. exit codes
- Task: test error path and connect the observation explicitly to
exit codes. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A035. pipelines
- Task: review log output and connect the observation explicitly to
pipelines. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A036. getopts
- Task: trace cleanup and connect the observation explicitly to
getopts. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A037. trap
- Task: scope portability and connect the observation explicitly to
trap. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A038. mktemp
- Task: mark security risk and connect the observation explicitly to
mktemp. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A039. text processing
- Task: document recovery path and connect the observation explicitly to
text processing. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A040. security
- Task: write review rule and connect the observation explicitly to
security. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A041. quoting
- Task: validate input and connect the observation explicitly to
quoting. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A042. exit codes
- Task: explain exit code and connect the observation explicitly to
exit codes. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A043. pipelines
- Task: check quoting and connect the observation explicitly to
pipelines. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A044. getopts
- Task: test error path and connect the observation explicitly to
getopts. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A045. trap
- Task: review log output and connect the observation explicitly to
trap. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A046. mktemp
- Task: trace cleanup and connect the observation explicitly to
mktemp. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A047. text processing
- Task: scope portability and connect the observation explicitly to
text processing. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A048. security
- Task: mark security risk and connect the observation explicitly to
security. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A049. quoting
- Task: document recovery path and connect the observation explicitly to
quoting. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A050. exit codes
- Task: write review rule and connect the observation explicitly to
exit codes. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A051. pipelines
- Task: validate input and connect the observation explicitly to
pipelines. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A052. getopts
- Task: explain exit code and connect the observation explicitly to
getopts. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A053. trap
- Task: check quoting and connect the observation explicitly to
trap. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A054. mktemp
- Task: test error path and connect the observation explicitly to
mktemp. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A055. text processing
- Task: review log output and connect the observation explicitly to
text processing. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A056. security
- Task: trace cleanup and connect the observation explicitly to
security. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A057. quoting
- Task: scope portability and connect the observation explicitly to
quoting. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A058. exit codes
- Task: mark security risk and connect the observation explicitly to
exit codes. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A059. pipelines
- Task: document recovery path and connect the observation explicitly to
pipelines. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A060. getopts
- Task: write review rule and connect the observation explicitly to
getopts. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A061. trap
- Task: validate input and connect the observation explicitly to
trap. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A062. mktemp
- Task: explain exit code and connect the observation explicitly to
mktemp. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A063. text processing
- Task: check quoting and connect the observation explicitly to
text processing. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A064. security
- Task: test error path and connect the observation explicitly to
security. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A065. quoting
- Task: review log output and connect the observation explicitly to
quoting. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A066. exit codes
- Task: trace cleanup and connect the observation explicitly to
exit codes. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A067. pipelines
- Task: scope portability and connect the observation explicitly to
pipelines. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A068. getopts
- Task: mark security risk and connect the observation explicitly to
getopts. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A069. trap
- Task: document recovery path and connect the observation explicitly to
trap. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A070. mktemp
- Task: write review rule and connect the observation explicitly to
mktemp. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A071. text processing
- Task: validate input and connect the observation explicitly to
text processing. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A072. security
- Task: explain exit code and connect the observation explicitly to
security. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A073. quoting
- Task: check quoting and connect the observation explicitly to
quoting. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A074. exit codes
- Task: test error path and connect the observation explicitly to
exit codes. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A075. pipelines
- Task: review log output and connect the observation explicitly to
pipelines. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A076. getopts
- Task: trace cleanup and connect the observation explicitly to
getopts. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A077. trap
- Task: scope portability and connect the observation explicitly to
trap. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A078. mktemp
- Task: mark security risk and connect the observation explicitly to
mktemp. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A079. text processing
- Task: document recovery path and connect the observation explicitly to
text processing. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A080. security
- Task: write review rule and connect the observation explicitly to
security. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A081. quoting
- Task: validate input and connect the observation explicitly to
quoting. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A082. exit codes
- Task: explain exit code and connect the observation explicitly to
exit codes. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A083. pipelines
- Task: check quoting and connect the observation explicitly to
pipelines. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A084. getopts
- Task: test error path and connect the observation explicitly to
getopts. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A085. trap
- Task: review log output and connect the observation explicitly to
trap. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A086. mktemp
- Task: trace cleanup and connect the observation explicitly to
mktemp. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A087. text processing
- Task: scope portability and connect the observation explicitly to
text processing. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A088. security
- Task: mark security risk and connect the observation explicitly to
security. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A089. quoting
- Task: document recovery path and connect the observation explicitly to
quoting. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.
A090. exit codes
- Task: write review rule and connect the observation explicitly to
exit codes. - Evidence: Record the checked command, expected output, actual output and exit code.
- Operations question: What happens with empty input, missing files, missing tools and repeated execution?
- Security question: Can input become an option, path, glob, subshell, eval expression or secret leak?
- Recovery: Describe revert, cleanup, restore, secret rotation or manual correction.