直接用bash命令运行脚本是最简单稳妥的方式,无需执行权限和正确shebang;支持bash script.sh、bash /path/to/script.sh等路径形式,且可搭配-n(语法检查)、-x(跟踪执行)、-v(显示原始行)等调试选项。

直接用 bash 命令运行脚本,是最简单、最稳妥的启动方式,不需要改权限,也不依赖 shebang 行是否正确。
基本用法:bash + 脚本路径
无论脚本在当前目录还是其他位置,只要路径写对,就能运行:
-
bash script.sh(当前目录下) -
bash /home/user/bin/backup.sh(绝对路径) -
bash ../scripts/deploy.sh(相对路径)
注意:路径必须准确,不能漏掉 .sh 后缀,也不能写成 bash ./script.sh —— 这种写法虽然有时能跑通,但本质是靠系统识别 shebang,不是纯粹靠 bash 命令本身。
配合调试选项,边测边看
用 bash 运行时,可以加参数提前发现潜在问题:
-
bash -n script.sh:只检查语法,不执行。适合改完脚本后快速验证有没有漏括号、引号不匹配等错误。 -
bash -x script.sh:逐行显示实际执行的命令(含变量展开),方便定位逻辑卡点或路径拼错。 -
bash -v script.sh:显示原始脚本行再执行,适合确认某段代码是否被读入。
多个选项可组合,比如 bash -nx script.sh 一次完成语法检查+预览执行流。
和直接执行 ./script.sh 的关键区别
用 ./script.sh 要求脚本有 x 权限,且系统会按第一行 #!/bin/bash 指定的解释器来调用;而 bash script.sh 是强制用当前系统的 bash 解释器,绕过了权限和 shebang 限制。
- 适合测试刚写完还没 chmod 的脚本
- 适合在 shebang 写错(比如写成
#!/bin/sh却用了 bash 特有语法)时救急 - 适合在不同机器上统一用 bash 执行,避免 sh/bash 行为差异
常见报错及应对
运行时若提示 command not found 或 No such file or directory,多数不是脚本问题,而是环境缺失:
- 确认 bash 已安装:
which bash应返回/bin/bash或类似路径 - 脚本里调用的命令(如
jq、curl)未安装,需先sudo apt install jq等 - 脚本中用了 Windows 换行符(CRLF),会导致
^M: command not found,用dos2unix script.sh修复


















