linux中.sh文件是什么?怎么执行?

本文介绍了 Linux 中 .sh 文件的概念及执行方式。.sh 文件通常是 bash 脚本,可以通过直接运行 ./filename.sh 或 sh filename.sh 来执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、linux中.sh文件是什么?

linux中.sh文件是脚本文件,一般都是bash脚本。

二、sh文件怎么执行?

1、直接./加上文件名.sh,如运行hello.sh为 ./hello.sh【绝对路径下也可以】

2、直接sh 加上文件名.sh,如运行hello.sh为sh hello.sh

### Linux 中 `sh` 命令的功能与用法 #### 1. `sh` 命令的基本功能 `sh` 是一种脚本解释器,用于运行基于 Shell 的脚本文件。它是 Bourne Shell 的缩写,也是 Unix/Linux 系统中最基础的 Shell 实现之一[^3]。当用户通过命令行输入指令时,Shell 负责将这些高级语言形式的命令翻译成操作系统能够理解的形式并执行。 #### 2. 执行 `.sh` 文件的方式 在 Linux 下有多种方法可以执行 `.sh` 文件: - **直接调用 `sh` 解释器** 使用 `sh filename.sh` 来显式指定由 `sh` 解释器来解析和运行脚本文件。这种方式不需要脚本具有可执行权限,也不依赖于脚本的第一行是否指定了正确的解释器路径[^4]。 - **赋予脚本可执行权限并通过相对/绝对路径执行** 如果给脚本设置了可执行权限 (`chmod +x filename.sh`) 并且其首行为 `#!/bin/sh` 或其他有效的 Shebang 行,则可以通过 `./filename.sh` 方式执行该脚本[^1]。 #### 3. 关键区别:`sh a.sh` vs `./a.sh` 两者的主要差异在于如何加载环境变量以及使用的 Shell 类型: - 当使用 `sh a.sh` 时,无论当前系统的默认 Shell 设置为何,都会强制使用 `/bin/sh` 来执行此脚本。 - 对于 `./a.sh` 方法来说,它会依据脚本头部定义的 Shebang(如 `#!/bin/bash`)决定具体采用哪个 Shell 版本来处理逻辑;如果未设置 Shebang 则可能沿用用户的登录 Shell[^2]。 #### 4. Shell 编程中的重要特性 ##### (1)变量管理 Shell 支持声明简单字符串类型的全局或局部变量,并允许对其进行赋值操作。例如,在脚本内部创建名为 USER_NAME 的新变量可通过如下语句完成: ```bash USER_NAME="John Doe" echo $USER_NAME ``` ##### (2)流程控制结构 支持条件判断、循环等基本编程组件,使得复杂的业务逻辑得以实现。比如简单的 If...Else 结构演示: ```bash if [ "$VAR" -eq 0 ]; then echo "Variable is zero." else echo "Variable is non-zero." fi ``` ##### (3)Unix 命令集成 无缝嵌入各种标准 Unix 工具命令,配合管道(`|`)、重定向(`>` `<`)等功能增强数据流操控能力。Backticks (\`\`) 或者更现代的 `$()` 形式可用于捕获子进程的标准输出作为父进程中的一部分参与运算。 #### 示例代码片段展示 这里给出一段综合运用上述特性的例子&mdash;&mdash;统计目录下所有普通文件总大小的一个小型实用工具: ```bash #!/bin/sh total_size=0 for file in *; do if [ -f "$file" ]; then size=$(stat --format="%s" "$file") total_size=$((total_size + size)) fi done echo Total Size: ${total_size} bytes. ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值