self-source.sh

来自「BASH Shell 编程 经典教程 《高级SHELL脚本编程》中文版」· Shell 代码 · 共 41 行

SH
41
字号
#!/bin/bash# self-source.sh: 一个脚本"递归"的source自身. # 来自于"Stupid Script Tricks," 卷 II.MAXPASSCNT=100    # 最大的可执行次数. echo -n  "$pass_count  "#  在第一次运行的时候,这句只不过echo出2个空格,#+ 因为$pass_count还没被初始化.let "pass_count += 1"#  假定这个未初始化的变量$pass_count#+ 可以在第一次运行的时候+1.#  这句可以正常工作在Bash和pdksh下, 但是#+ 它依赖于不可移植(并且可能危险)的行为.#  更好的方法是在使用$pass_count之前,先把这个变量初始化为0.while [ "$pass_count" -le $MAXPASSCNT ]do  . $0   # 脚本"source"自身, 而不是调用自己.         # ./$0 (应该能够正常递归)不能在这正常运行. 为什么?done  #  这里发生的动作并不是真正的递归,#+ 因为脚本成功的展开了自己,换句话说,#+ 在每次循环的过程中#+ 在每个'source'行(第20行)上#  都产生了新的代码.##  当然, 脚本会把每个新'source'进来文件的"#!"行#+ 都解释成注释, 而不会把它看成是一个新的脚本.echoexit 0   # 最终的效果就是从1数到100.         # 真是让人印象深刻.# 练习:# -----# 使用这个小技巧编写一些真正能够干些事情的脚本. 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?