在Linux系统中,.sh
脚本(Shell脚本)可以直接执行,但需要满足以下条件:
默认情况下,新建的脚本文件没有执行权限,需通过chmod
命令添加:
chmod +x script.sh # 为所有用户添加执行权限
chmod u+x script.sh # 仅为当前用户添加执行权限
脚本首行需声明正确的解释器(如#!/bin/bash
),否则系统可能无法识别如何运行:
#!/bin/bash
echo "Hello, World!"
./script.sh # 注意需在脚本所在目录,或使用绝对路径(如/home/user/script.sh)
bash script.sh # 使用bash解释器
sh script.sh # 使用sh解释器
若需像命令一样直接运行,可将脚本所在目录加入PATH
:
export PATH=$PATH:/path/to/scripts # 临时生效
echo 'export PATH=$PATH:/path/to/scripts' >> ~/.bashrc # 永久生效(对当前用户)
权限不足错误
bash: ./script.sh: Permission denied
解决:运行chmod +x script.sh
。
解释器路径错误
bash: ./script.sh: /bin/bash^M: bad interpreter
原因:脚本可能在Windows中编辑过,包含CRLF
换行符。
解决:运行dos2unix script.sh
或sed -i 's/\r$//' script.sh
。
命令未找到
bash: ./script.sh: command not found
原因:未指定完整路径或脚本不在当前目录。
解决:使用./script.sh
(当前目录)或绝对路径。
.sh
脚本的关键。./script.sh
方式执行时,需确保文件路径正确且具有权限。bash -x script.sh
查看执行过程。