当前位置:
首页>
健康>
美食 > 全国设计公司排行榜_外贸公司用什么建网站_搜索百度_素材网
全国设计公司排行榜_外贸公司用什么建网站_搜索百度_素材网
时间:2025/7/14 12:35:36来源:https://blog.csdn.net/qq_51149892/article/details/145806275 浏览次数:0次
全国设计公司排行榜_外贸公司用什么建网站_搜索百度_素材网
sh
与 bash
的区别详解
1. 历史背景
2. 主要区别与示例
2.1 脚本声明差异
-
sh
脚本
默认使用 #!/bin/sh
,遵循 POSIX 标准。
#!/bin/sh
echo "Hello, sh!"
-
bash
脚本
使用 #!/bin/bash
,支持非 POSIX 扩展语法。
#!/bin/bash
echo "Hello, bash!"
2.2 变量与数组
-
sh
不支持数组
sh
原生不支持数组,需用字符串模拟:
#!/bin/sh
list="one two three"
for item in $list; doecho "$item"
done
-
bash
支持数组
bash
提供原生数组语法:
#!/bin/bash
arr=("one" "two" "three")
echo "First element: ${arr[0]}"
2.3 字符串操作
-
sh
功能有限
字符串截取需依赖外部命令(如 cut
):
#!/bin/sh
str="abcdef"
substr=$(echo "$str" | cut -c1-3)
-
bash
内置字符串操作
支持直接截取:
#!/bin/bash
str="abcdef"
substr=${str:0:3}
2.4 条件测试语法
-
sh
使用 test
或 [ ]
sh
不支持 [[ ]]
,需严格遵循空格规则:
#!/bin/sh
if [ "$a" -eq 1 ] && [ "$b" -eq 2 ]; thenecho "Conditions met."
fi
-
bash
支持 [[ ]]
更安全的语法,支持正则匹配:
#!/bin/bash
if [[ $a == 1 && $b =~ ^2 ]]; thenecho "Conditions met."
fi
2.5 命令行扩展
2.6 错误处理
3. 兼容性
bash
兼容模式
通过 #!/bin/sh
调用 bash
时,若 bash
是系统默认 Shell,会尽量模拟 sh
行为:
4. 总结与使用场景
场景 | 推荐 Shell |
---|
需严格遵循 POSIX 标准 | sh |
需要高级功能或交互式操作 | bash |
跨平台脚本 | sh (避免依赖扩展) |
- 验证当前 Shell:
echo $SHELL
echo $0
关键字:全国设计公司排行榜_外贸公司用什么建网站_搜索百度_素材网
版权声明:
本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。
我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com
责任编辑: