基础概念
- .sh文件是什么?
扩展名为.sh
的文件是Shell脚本,包含一系列Linux/macOS终端命令,用于自动化任务(如批量处理文件、部署应用等)。 - 运行原理
通过Shell解释器(如bash
、zsh
)逐行执行脚本中的命令。
运行步骤(Linux/macOS)
步骤1:打开终端
- Linux:按
Ctrl+Alt+T
或搜索“Terminal”。 - macOS:打开“应用程序→实用工具→终端”。
步骤2:赋予执行权限
默认情况下,新建的.sh
文件无执行权限,需运行:
chmod +x 脚本名.sh
示例:
chmod +x backup.sh # 使backup.sh可执行
步骤3:运行脚本
方法1:指定解释器直接运行
bash 脚本名.sh
或
sh 脚本名.sh
✅ 无需权限即可执行,适合临时运行。
方法2:通过路径执行(需权限)
./脚本名.sh
⚠️ 注意:必须添加表示当前目录,否则系统会提示“未找到命令”。
方法3:使用绝对路径
/home/user/scripts/backup.sh
Windows系统运行方法
Windows需借助兼容工具:
-
Git Bash(推荐)
- 安装Git for Windows,打开“Git Bash”。
- 执行:
bash 脚本名.sh
-
WSL(Windows Subsystem for Linux)
- 启用WSL并安装Linux发行版(如Ubuntu)。
- 在WSL终端中按Linux方法操作。
-
Cygwin
安装Cygwin后运行脚本。
常见问题解决
-
权限错误:
Permission denied
chmod +x 脚本名.sh # 赋予权限
-
路径错误:
No such file or directory
- 检查文件名拼写。
- 使用
pwd
确认当前目录,用ls
查看文件是否存在。
-
换行符问题(Windows创建脚本在Linux运行)
错误提示:$'\r': command not found
解决:安装dos2unix
并转换:sudo apt install dos2unix # Debian/Ubuntu dos2unix 脚本名.sh
-
解释器错误:
bad interpreter
确保脚本首行指定正确的解释器路径(如#!/bin/bash
),通过which bash
查看路径。
安全注意事项
- 验证脚本来源
切勿运行来源不明的脚本(可能包含rm -rf /
等危险命令)。 - 查看脚本内容
用文本编辑器或cat 脚本名.sh
检查代码。 - 限制权限
避免使用sudo
运行未知脚本,防止系统被篡改。
高级技巧
- 调试脚本:添加
-x
参数输出执行细节:bash -x 脚本名.sh
- 传递参数:
./sum.sh 5 10 # 脚本内用$1获取第一个参数(5),$2获取第二个(10)
- 后台运行:
nohup ./server.sh & # 退出终端仍运行
- Linux/macOS:
chmod +x
赋权 →./脚本.sh
执行。 - Windows:用Git Bash/WSL运行
bash 脚本.sh
。 - 安全第一:始终检查脚本内容,谨慎赋予权限。
参考Linux man-pages、GNU Bash手册及Microsoft WSL官方文档,实践前建议备份重要数据。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7680.html