# 正文

- [第一部分 初见shell](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part1.md)
- [1. 为什么使用shell编程](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part1/01_shell_programming.md)
- [2. 和Sha-Bang(#!)一起出发](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part1/02_starting_off_with_a_sha_bang.md)
- [2.1 调用一个脚本](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part1/02_starting_off_with_a_sha_bang/02_1_invoking_the_script.md)
- [2.2 牛刀小试](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part1/02_starting_off_with_a_sha_bang/02_2_preliminary_exercises.md)
- [第二部分 shell基础](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part2.md)
- [3. 特殊字符](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part2/03_special_characters.md)
- [4. 变量与参数](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part2/04_introduction_to_variables_and_parameters.md)
- [4.1 变量替换](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part2/04_introduction_to_variables_and_parameters/04_1_variable_substitution.md)
- [4.2 变量赋值](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part2/04_introduction_to_variables_and_parameters/04_2_variable_assignment.md)
- [4.3 Bash弱类型变量](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part2/04_introduction_to_variables_and_parameters/04_3_bash_variables_are_untyped.md)
- [4.4 特殊变量类型](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part2/04_introduction_to_variables_and_parameters/04_4_special_variable_types.md)
- [5. 引用](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part2/05_quoting.md)
- [5.1 引用变量](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part2/05_quoting/05_1_quoting_variables.md)
- [5.2 转义](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part2/05_quoting/05_2_escaping.md)
- [6. 退出与退出状态](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part2/06_exit_and_exit_status.md)
- [7. 测试](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part2/07_tests.md)
- [7.1 测试结构](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part2/07_tests/07_1_test_constructs.md)
- [7.2 文件测试操作](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part2/07_tests/07_2_file_test_operators.md)
- [7.3 其他比较操作](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part2/07_tests/07_3_other_comparison_operators.md)
- [7.4 嵌套 if/then 条件测试](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part2/07_tests/07_4_nested_if_then_condition_tests.md)
- [7.5 牛刀小试](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part2/07_tests/07_5_testing_your_knowledge_of_tests.md)
- [8. 运算符相关话题](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part2/08_operations_and_related_topics.md)
- [8.1 运算符](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part2/08_operations_and_related_topics/08_1_operators.md)
- [8.2 数字常量](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part2/08_operations_and_related_topics/08_2_numerical_constants.md)
- [8.3 双圆括号结构](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part2/08_operations_and_related_topics/08_3_the_double_parentheses_construct.md)
- [8.4 运算符优先级](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part2/08_operations_and_related_topics/08_4_operator_precedence.md)
- [第三部分 shell进阶](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part3.md)
- [9. 换个角度看变量](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part3/09_another_look_at_variables.md)
- [9.1 内部变量](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part3/09_another_look_at_variables/09_1_internal_variables.md)
- [9.2 变量类型标注：declare 与 typeset](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part3/09_another_look_at_variables/09_2_typing_variables_declare_or_typeset.md)
- [9.2.1 declare 的另类用法](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part3/09_another_look_at_variables/09_2_typing_variables_declare_or_typeset/09_2_1_another_use_for_declare.md)
- [9.3 $RANDOM：生成随机数](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part3/09_another_look_at_variables/09_3_random_generate_random_integer.md)
- [10. 变量处理](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part3/10_manipulating_variables.md)
- [10.1 字符串处理](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part3/10_manipulating_variables/10_1_manipulating_strings.md)
- [10.1.1 使用 awk 处理字符串](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part3/10_manipulating_variables/10_1_manipulating_strings/10_1_1_manipulating_strings_using_awk.md)
- [10.1.2 参考资料](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part3/10_manipulating_variables/10_1_manipulating_strings/10_1_2_further_reference.md)
- [10.2 参数替换](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part3/10_manipulating_variables/10_2_parameter_substitution.md)
- [11. 循环与分支](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part3/11_loops_and_branches.md)
- [11.1 循环](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part3/11_loops_and_branches/11_1_loops.md)
- [11.2 嵌套循环](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part3/11_loops_and_branches/11_2_nested_loops.md)
- [11.3 循环控制](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part3/11_loops_and_branches/11_3_loop_control.md)
- [11.4 测试与分支](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part3/11_loops_and_branches/11_4_testing_and_branching.md)
- [12. 命令替换](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part3/12_command_substitution.md)
- [13. 算术扩展](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part3/13_arithmetic_expansion.md)
- [14. 休息时间](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part3/14_recess_time.md)
- [第四部分 命令](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part4.md)
- [15. 内建命令](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part4/15_internal_commands_and_builtins.md)
- [15.1 任务控制命令](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part4/15_internal_commands_and_builtins/15_1_job_control_commands.md)
- [16. 外部筛选器，任务及命令](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part4/16_external_filters_programs_and_commands.md)
- [16.1 基础命令](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part4/16_external_filters_programs_and_commands/16_1_basic_commands.md)
- [16.2 复杂命令](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part4/16_external_filters_programs_and_commands/16_2_complex_commands.md)
- [16.3 时间/日期命令](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part4/16_external_filters_programs_and_commands/16_3_time_date_commands.md)
- [16.4 文本处理命令](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part4/16_external_filters_programs_and_commands/16_4_text_processing_commands.md)
- [16.5 文件与归档命令](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part4/16_external_filters_programs_and_commands/16_5_file_archiving_commands.md)
- [16.6 通信命令](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part4/16_external_filters_programs_and_commands/16_6_communications_commands.md)
- [16.7 终端控制命令](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part4/16_external_filters_programs_and_commands/16_7_terminal_control_commands.md)
- [16.8 数学命令](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part4/16_external_filters_programs_and_commands/16_8_math_commands.md)
- [16.9 杂项命令](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part4/16_external_filters_programs_and_commands/16_9_miscellaneous_commands.md)
- [17. 系统与管理命令](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part4/17_system_and_administrative_commands.md)
- [17.1 分析一个系统脚本](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part4/17_system_and_administrative_commands/17_1_analyzing_a_system_script.md)
- [第五部分 高级话题](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5.md)
- [18.正则表达式](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/18_regular_expressions.md)
- [18.1正则表达式简介](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/18_regular_expressions/18_1_a_brief_introduction_to_regular_expressions.md)
- [18.2文件名替换](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/18_regular_expressions/18.2-wen-jian-ming-ti-huan.md)
- [19. 嵌入文档](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/19_here_documents.md)
- [20. I/O 重定向](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/20_io_redirection.md)
- [20.1 使用 exec](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/20_io_redirection/20_1_use_exec.md)
- [20.2 重定向代码块](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/20_io_redirection/20_2_redirecting_code_blocks.md)
- [20.3 应用程序](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/20_io_redirection/20_3_applications.md)
- [21. 子shell](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/21_subshells.md)
- [22. 限制模式的Shell](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/22_restricted_shells.md)
- [23. 进程替换](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/23_process_substitution.md)
- [24. 函数](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/24_functions.md)
- [24.1 复杂函数和函数复杂性](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/24_functions/24_1_complex_functions_and_function_complexities.md)
- [24.2 局部变量](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/24_functions/24_2_local_variables.md)
- [24.3 不适用局部变量的递归](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/24_functions/24_3_recursion_without_local_variables.md)
- [25. 别名](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/25_aliases.md)
- [26. 列表结构](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/26_list_constructs.md)
- [27. 数组](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/27_arrays.md)
- [28. 间接引用](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/28_ivr.md)
- [29. /dev 和 /proc](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/29_devproc.md)
- [29.1 /dev](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/29_devproc/29_1_devref1.md)
- [29.2 /proc](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/29_devproc/29_2_procref1.md)
- [30. 网络编程](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/30_network_programming.md)
- [32. 调试](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/32_debugging.md)
- [33. 选项](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/33_options.md)
- [34. 陷阱](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/34.-xian-jing.md)
- [36. 杂项](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/36_miscellany.md)
- [36.1 交互和非交互shell以及脚本](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/36_miscellany/36_1_interactive_and_non-interactive_shells_and_scripts.md)
- [36.2 shell wrappers](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/36_miscellany/36_2_shell_wrappers.md)
- [36.3 测试和比较的其他方法](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/36_miscellany/36_3_tests_and_comparisons_alternatives.md)
- [36.4 递归：调用自己的脚本](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/36_miscellany/36_4_recursion_a_script_calling_itself.md)
- [36.5 “彩色”的脚本](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/36_miscellany/36_5_colorizing_scripts.md)
- [36.6 优化](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/36_miscellany/36_6_optimizations.md)
- [36.7 其他技巧](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/36_miscellany/36_7_assorted_tips.md)
- [36.8 安全问题](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/36_miscellany/36_8_security_issues.md)
- [36.9 可移植性问题](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/36_miscellany/36_9_portability_issues.md)
- [36.10 Windows系统下的脚本](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/part5/36_miscellany/36_10_shell_scripting_under_windows.md)
- [38. 后记](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/38_endnotes.md)
- [38.1 作者后记](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/38_endnotes/38_1_author_s_note.md)
- [38.2 关于作者](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/38_endnotes/38_2_about_the_author.md)
- [38.3 从哪里可以获得帮助](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/38_endnotes/38_3_where_to_go_for_help.md)
- [38.4 用来制作这本书的工具](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/38_endnotes/38_4_tools_used_to_produce_this_book.md)
- [38.5 致谢](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/38_endnotes/38_5_credits.md)
- [38.6 免责声明](https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen/38_endnotes/38_6_disclaimer.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://linuxstory.gitbook.io/advanced-bash-scripting-guide-in-chinese/zheng-wen.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
