linux系统是可以执行.sh文件的,.sh文件本质是shell脚本文件,只要满足对应的执行条件,就可以通过多种方式在linux环境中运行。

执行.sh文件的前提条件
要让linux能够顺利执行.sh文件,需要同时满足两个基础条件:
- 脚本文件本身具有可执行权限,linux系统默认新建的文件是没有执行权限的,需要手动添加。
- 脚本的第一行需要正确指定解释器,通常.sh文件的第一行会写
#!/bin/bash,用来告诉系统使用bash解释器来执行这个脚本。
给.sh文件添加执行权限
如果.sh文件没有执行权限,需要先通过chmod命令添加权限,常用的添加方式有两种:
# 给文件所有者添加执行权限 chmod u+x test.sh # 给所有用户添加执行权限 chmod +x test.sh
添加完成后可以通过ls -l test.sh命令查看权限,如果权限列出现x标识,说明执行权限已经添加成功。
执行.sh文件的常见方式
方式一:直接执行(需要可执行权限)
如果已经给.sh文件添加了执行权限,并且脚本第一行的解释器路径正确,可以直接通过绝对路径或者相对路径执行:
# 相对路径执行,假设当前目录就是脚本所在目录 ./test.sh # 绝对路径执行 /home/user/scripts/test.sh
方式二:通过解释器执行(不需要可执行权限)
如果没有给.sh文件添加执行权限,也可以直接指定shell解释器来执行脚本,这种方式不需要文件有可执行权限:
# 使用bash解释器执行 bash test.sh # 使用sh解释器执行 sh test.sh
方式三:source命令执行
使用source命令执行脚本会在当前shell环境中运行脚本,而不是开启新的子shell,脚本中定义的环境变量会在当前shell生效:
source test.sh # 也可以用.代替source,效果一致 . test.sh
常见问题及解决方法
| 问题现象 | 原因 | 解决方法 |
|---|---|---|
| 执行时提示权限不足 | 文件没有可执行权限 | 使用chmod命令给文件添加执行权限 |
| 提示找不到解释器 | 脚本第一行的解释器路径错误 | 修改脚本第一行为正确的解释器路径,比如#!/bin/bash |
| 执行后无反应或者报错语法错误 | 脚本编码有问题或者换行符是windows格式 | 使用dos2unix工具转换换行符,或者重新保存为linux格式的脚本 |
简单示例验证
我们可以创建一个简单的.sh文件来验证执行效果,先创建hello.sh文件,内容如下:
#!/bin/bash # 输出测试内容 echo "linux执行.sh文件测试成功"
然后添加执行权限并执行:
chmod +x hello.sh ./hello.sh
如果终端输出linux执行.sh文件测试成功,说明.sh文件已经成功执行。