Linux-防火墙中值保留几个端口的脚本update_firewall.sh 代码(VSCode看到是UTF-8 LF,否则出错):
执行:
详细解释:
执行:
解释:./表示当前目录。
运行后:
注意:
如果用宝塔SSH后,会出现:
是因为下载的VSCode看到是UTF-8 CRLF,必须是VSCode看到是UTF-8 LF,可以用宝塔SSH先删除,再上传(因为覆盖不了只能先删除)。
小知识:
#!/bin/bash 是一个shebang 行(也称为 hashbang 或 bang line),它是脚本文件的第一行,用于告诉操作系统应该使用哪个解释器来执行这个脚本。
详细解释:
#! - 这两个字符组合被称为 "shebang" 或 "hashbang"
/bin/bash - 指定了 bash 解释器的路径
作用:
当您直接执行一个脚本文件(如 ./script.sh)时,操作系统会:1 读取文件的第一行2 看到 #!/bin/bash 后,知道应该使用 /bin/bash 来解释执行这个脚本3 调用 bash 解释器来运行脚本中的命令
其他常见的 shebang:
#!/bin/sh - 使用 sh 解释器(更基础的 shell)
#!/usr/bin/python3 - 使用 Python 3 解释器
#!/usr/bin/perl - 使用 Perl 解释器
#!/usr/bin/env bash - 更灵活的写法,会从 PATH 中查找 bash
为什么需要它:
如果没有 shebang 行,操作系统可能不知道如何正确执行脚本,或者会使用默认的 shell(通常是 /bin/sh),这可能导致某些 bash 特有功能无法正常工作。
这是 Unix/Linux 系统中脚本编程的标准做法。