shlinux命令
shlinux命令详细介绍
在 Linux 系统中,sh 是 Bourne Shell(由 Stephen Bourne 开发)的解释器,是早期 Unix/Linux 系统中默认的 Shell。它遵循 POSIX 标准,适合需要兼容性的脚本场景。以下是 sh 的常见用法和核心命令:
一、基础用法:启动
sh
直接在终端输入 sh 会进入 sh 的交互模式(提示符通常为 $):
bash
$$
$
二、执行脚本文件
sh 最常用的场景是执行 Shell 脚本文件(后缀通常为 .sh),有两种方式:
1. 直接通过
sh 执行(无需脚本文件可执行权限)
假设脚本文件 test.sh 内容如下:
bash
执行命令:
bash
test.sh
2. 给脚本文件添加可执行权限后执行
若希望直接通过 ./test.sh 执行,需先添加执行权限:
bash
+x test.sh./test.sh
本质上,./test.sh 会读取脚本第一行的 #!/bin/sh,调用 sh 执行脚本。
三、
sh 常用选项(执行脚本时)
sh 支持通过选项控制脚本的执行行为,常用选项如下:
| 选项 | 说明 |
|---|---|
-n |
检查脚本语法错误(不执行脚本)。例如:sh -n test.sh |
-x |
调试模式(执行时打印每一行命令及其参数)。例如:sh -x test.sh |
-c "命令" |
直接执行字符串中的命令。例如:sh -c "echo 'Hello'; ls -l" |
-e |
脚本中任意命令失败(返回非 0)时,立即终止脚本(类似 set -e)。 |
四、
sh 与其他 Shell 的区别
Linux 中常见的 Shell(如 bash、zsh)是 sh 的扩展,支持更多高级功能(如数组、函数、别名等),但 sh 更轻量且严格遵循 POSIX 标准,适合需要兼容性的场景:
bash:默认 Shell,支持sh所有功能,并扩展了交互模式、历史记录、通配符增强等。dash:Debian/Ubuntu 系统中sh的默认实现(更轻量,适合脚本执行)。
示例:用
sh 执行带调试的脚本
假设脚本 demo.sh 内容:
bash
non_exist_file
- 普通执行(报错但继续):
bashdemo.sh - 带
-e选项(报错后终止):
bashdemo.sh912345 demo.sh
如果需要更复杂的脚本功能(如循环、条件判断),可以进一步学习 sh 的语法(与 POSIX Shell 兼容)。