前言 上一篇我们解决DD脚本的问题的方案, 其实就可以用来解决所有网络受限的VPS环境运行脚本的问题 ( 当然整个操作看起来比较繁琐. 而且, 上一篇的方案只处理了curl的情况. 而常见的脚本, 有些是用curl访问网络, 有些是用wget. 能力弱一点的朋友, 不知道怎么改成处理wget的情况. 那么, 我们尝试做一个通用一点的方案. 而且考虑如何方便使用. 思路 我们 做一个 fake-curl-wget.sh 脚本. 1) fake-curl-wget.sh 包含一个 curl() 的壳子, 和一个 wget() 的壳子 2) 使用者在终端先 source fake-curl-wget.sh 再执行其它脚本 3) 这样, 后面执行的脚本会调用到 fake-curl-wget.sh 中的 curl()壳子 和 wget()壳子 4) 每次调用 curl 或 wget 时, 打印一个调用序号. 这个序号每次调用时, 自增1 为了避免管道命令导致的序号问题, 使用临时文件保存序号. 5) 对于所有 curl 和 wget 调用, 这个序号是统一. 先调用curl时, 序号为1. 接着调用wget时, 序号为2. 6) 输出 pwd 当前目录 7) 输出 完整的 curl 命令和全部参数 8) 输出 完整的 wget 命令和全部参数 9) 这个curl壳 或 wget壳, 并不去真正访问网络 10) 根据调用序号, 执行预设的命令. 如, cp file1 /path/to/file 或 cat file2 用来替代 curl -LO 或 curl -Lo 的保存文件的命令 或 curl -L 的输出到stdout的命令 11) 这些预设命令是会被人工编辑而增加的. 用case实现 10) 的逻辑. 12) 这个curl壳 或 wget壳, 永远返回成功. 实践与调试 把上面这一大段需求发给GPT. 得到的结果大方向是对的, 但是有小问题. 而且对话几次, 也不能让我满意. 还是要动用我的编码能力, 综合多个GPT的回答. * 也许是我用的免费的GPT, 能力不够. 版本V1 最终得到 fake-curl-wget.sh 文件内容: #!/usr/bin/env bash # ============================...