Shell功能
脚本获取域名的IP地址
自动检测公网IP地址并更新到公云PubYun
获取公网IP地址的多种方式
深入理解 Bash 中的管道与子 Shell:防止常见陷阱
CentOS和Ubuntu的Shell兼容点
主机之间ping命令检测
脚本匹配ip地址正则表达式
CentOS 7.x系统三级等保规范脚本
Shell数值计算的几种方法
脚本单实例运行的进程锁
主机通过客户端实时上传本地文件到对象存储
执行命令前关闭history记录
Bash中的变量声明与处理
sed:使用正则匹配IP地址
sed: 匹配并在中间位置插入字符
Find排除多个目录并按多个后缀查找文件
Linux主机巡检脚本
增加CPU使用率到指定范围
本文档使用 MrDoc 发布
-
+
home page
CentOS和Ubuntu的Shell兼容点
> 问:**为什么Shell脚本在Ubuntu系统下无法执行,但在CentOS等系统中可正常执行?** > >看k了高版本的Ubuntu系统中,默认Shell环境为`dash`,而非`bash`。dash与bash的Shell语法不完全兼容. 在编写shell文件时,在开头加上如下语句 ```bash #!/bin/bash ``` 其含义是再没有指定解释器时,使用`/bin/bash`作为脚本解释器执行 # dash与bash的区别 **`sh`** 是一种编程语言,指的是shell命令语言,其规范由POSIX standard指定 **`bash`** (the GNU Bourne-Again Shell)和 **`dash`** (the Debian Almquist Shell)是兼容sh规范的脚本解释器 对于Debian和Ubuntu系统而言,其默认的sh链接指向的是`dash` `bash`能实现的功能比`dash`多,具体差别参考 [bash和dash区别](https://stackoverflow.com/questions/5725296/difference-between-sh-and-bash "bash和dash区别"),所以执行脚本时推荐使用bash # Shell兼容设定 | 命令 | CentOS/bash | Ubuntu/dash | 兼容命令 | | --- | --- | --- | --- | | ip | /usr/sbin/ip | /sbin/ip | $(command -v ip) | | if | if [[ ]] | if [ ] | 无,在Ubuntu下bash shell.sh即可 | | nologin | /sbin/nologin | /usr/sbin/nologin | /usr/sbin/nologin |
Nathan
March 21, 2023, 7:08 p.m.
转发文档
Collection documents
Last
Next
手机扫码
Copy link
手机扫一扫转发分享
Copy link
Markdown文件
PDF文件
Docx文件
share
link
type
password
Update password