上一篇                     
               
			  怎样在Linux执行脚本文件
- Linux
- 2025-06-22
- 3106
 在Linux中执行脚本需先赋予可执行权限:
 
 
chmod +x 脚本名,然后可通过路径执行:
 ./脚本名,或用解释器直接运行:
 bash 脚本名。
脚本执行前的准备工作
-  创建脚本文件 
 使用文本编辑器(如nano或vim)创建脚本文件,扩展名通常为.sh(非强制)。
 示例:创建一个输出 “Hello World” 的脚本nano hello.sh #!/bin/bash echo "Hello World" - #!/bin/bash称为 Shebang,指定脚本用Bash解释器执行(其他解释器如- #!/usr/bin/python3用于Python脚本)。
 
-  赋予执行权限 
 Linux文件默认无执行权限,需通过chmod命令授权: chmod +x hello.sh # 为所有用户添加执行权限 - 权限检查:ls -l hello.sh显示-rwxr-xr-x表示权限已生效。
 
- 权限检查:
执行脚本的4种方法
方法1:直接路径执行(推荐)
./hello.sh
- 要求: 
  - 必须在脚本所在目录执行( 表示当前目录)。
- 需提前用 chmod赋予执行权限。
 
- 适用场景:日常执行自定义脚本。
方法2:指定解释器执行(无需权限)
bash hello.sh # 使用Bash解释器 sh hello.sh # 使用系统默认Shell python3 script.py # 执行Python脚本
- 优点:跳过权限设置,直接调用解释器运行。
- 注意:脚本内Shebang行会被忽略,以命令指定的解释器为准。
方法3:source 或 . 命令(当前Shell环境执行)
source hello.sh # 或简写为 . hello.sh
- 特点: 
  - 脚本在当前Shell会话中运行,可修改当前环境变量(如 export VAR=value)。
- 无需执行权限。
 
- 脚本在当前Shell会话中运行,可修改当前环境变量(如 
- 典型用途:加载环境配置(如 source ~/.bashrc)。
方法4:全局路径执行(任意目录调用)
- 将脚本移动到系统PATH包含的目录(如 /usr/local/bin):sudo cp hello.sh /usr/local/bin/hello 
- 直接执行: hello # 在任何目录输入脚本名即可 
- 验证PATH:echo $PATH查看路径列表。
常见错误与解决方案
| 错误提示 | 原因 | 解决方法 | 
|---|---|---|
| -bash: ./hello.sh: Permission denied | 缺少执行权限 | chmod +x hello.sh | 
| -bash: ./hello.sh: No such file or directory | 文件路径错误或编码问题 | 检查路径,用 file hello.sh确认文件类型 | 
| -bash: ./hello.sh: /bin/bash^M: bad interpreter | 脚本含Windows换行符(rn) | 运行 dos2unix hello.sh转换格式 | 
| 命令未找到( command not found) | Shebang路径错误或PATH未配置 | 检查Shebang行(如 #!/bin/bash),确认解释器路径存在 | 
安全注意事项
- 禁止随意执行来源不明的脚本 反面脚本可能删除文件或窃取数据,始终审查代码后再运行。 
- 最小权限原则 
  - 用普通用户执行脚本,必要时通过 sudo提权(避免直接以root运行)。
 
- 用普通用户执行脚本,必要时通过 
- 敏感信息保护 
  - 不要在脚本中硬编码密码,使用环境变量或加密存储(如 AWS Secrets Manager)。
 
- 不要在脚本中硬编码密码,使用环境变量或加密存储(如 
最佳实践
- 脚本调试 
  - 使用 -x参数打印执行过程:bash -x hello.sh。
 
- 使用 
- 日志记录 
  - 重定向输出到文件:./hello.sh > log.txt 2>&1。
 
- 重定向输出到文件:
- 添加注释 用 说明代码功能,便于维护。  
Linux脚本执行依赖权限设置(chmod)和正确调用方式(路径执行、解释器调用等),关键步骤: 
- 编写脚本并添加Shebang行;
- chmod +x赋予权限;
- 通过 ./script.sh、bash script.sh或全局路径执行。
 掌握这些方法可大幅提升运维效率,同时注意安全风险控制。
引用说明参考Linux官方文档(The Linux Documentation Project)及Bash手册(GNU Bash Manual),遵循POSIX标准,安全建议基于CIS Linux安全基准指南。
 
 
 
			 
			