当前位置: 首页 > news >正文

dw个人网站制作大数据统计网站

dw个人网站制作,大数据统计网站,明年做啥网站能致富,提倡在局部sh与bash的区别 结论:对于一般开发者,没有区别;对于要使脚本兼容较老系统,或者兼容其他shell(如ksh,dash),那么意义可能很重大,要确保自己代码没有bash扩展的特性。 区…

sh与bash的区别

结论:对于一般开发者,没有区别;对于要使脚本兼容较老系统,或者兼容其他shell(如ksh,dash),那么意义可能很重大,要确保自己代码没有bash扩展的特性。

区别

sh是早期版本,用POSIX标准,没有bash扩展的特性;bash是后期版本,有bash扩展的特性(默认模式、bash标准模式)。

bash扩展的特性

  • 数组支持
  • [[ 条件测试,提供了比 [ (POSIX test 命令) 更强大的条件测试结构,支持模式匹配、逻辑运算等。
  • function 关键字:Bash 允许使用 function 关键字定义函数。
  • local 关键字:可以在函数中定义局部变量,而 POSIX shell 不支持此特性。
  • 进程替换:支持使用 <(command)>(command) 进行进程替换。
  • shopt 命令:Bash 允许通过 shopt 来开启或关闭 shell 的某些特性。
  • 扩展的重定向:支持 |& 语法将标准输出和标准错误重定向到同一管道。
  • ** 递归通配符:支持使用 ** 来递归匹配文件和目录。
  • 字符串操作:Bash 提供了丰富的字符串处理功能,例如 ${var#pattern}${var/pattern/replacement} 等。
  • $RANDOM$PPID 等特殊变量:这些变量是 Bash 特有的,用于生成随机数、获取父进程 ID 等。
  • 内置算术表达式:支持 (( )) 进行算术运算,比 expr 更灵活。
  • Here字符串 (<<<):将字符串作为输入传递给命令。
  • 命令历史扩展:Bash 提供强大的命令历史记录功能,例如 !! 重复上一个命令,!n 执行第 n 个命令。
  • 别名(alias)支持:Bash 支持通过 alias 定义命令的别名。
  • 数组切片:Bash 提供数组的切片操作,用来获取数组的部分元素。

据(这篇文章)说,POSIX模式下,shell遇到错误会停止;默认模式shell遇到错误仍然进行;(这里说的错误是指运行时的返回的非0值,而不是指脚本中的语法错误。)
然而,这个说法是有问题的。

理论上,POSIX模式下,不支持bash扩展特性,实际上不是

确定sh或bash的真实指向

以sh为例

  1. 确定sh的真实路径,which sh,一般是/usr/bin/sh
  2. 查看sh的指向,ll /usr/bin/sh,得到lrwxrwxrwx. ........ /usr/bin/sh -> bash。这里看到lrwx..... ->bash,所以/usr/bin/sh是一个软链接,指向bash。
    尽管sh指向bash,但通过sh执行脚本,仍然会启用POSIX模式。

脚本解释器(sh或bash)的优先级

执行脚本的命令sh 或 bash >优先于 脚本头定义的【shebang】 >优先于 系统默认的shell。

若,通过sh 或 bash调用脚本,解释器为sh 或 bash;
若,通过相对路径、绝对路径调用脚本,解释器由脚本头的【shebang】决定;
若,通过路径调用脚本,脚本头也没有【shebang】,则由系统默认的shell决定;

结论:区别不大,对于普通开发者来说

  1. 不论是不是POSIX模式,不论脚本头如何写(#!/bin/sh或 #!/bin/bash),不论用sh 或 bash 或 路径调用法,不论加不加--posix参数脚本中的数组与[[]]都支持。即,bash扩展特性都支持。
  2. shell遇到错误是否继续执行,与POSIX模式无关,但与set -e选项有关,默认set -e是关闭的,遇到错误仍然继续。这里的错误,是指脚本运行时抛出的非0返回值,而不是指脚本中的语法错误,语法错误都会造成脚本停止。
  3. 可以通过 if [ -o posix ]来区分POSIX模式,但在bash扩展特性都支持的情况下,没有太大意义;

为什么?

chatgpt给出的原因是,POSIX模式(POSIX兼容模式)与POSIX标准不一样,POSIX兼容模式会让bash尽量符合POSIX标准,但不会完全禁用所有的bash扩展。

区分还有意义吗?

有。当你需要编写一个兼容老系统的脚本,或者要在其他非bash的shell(ksh,dash)上运行的脚本,需要注意不要有bash扩展特性。

其他:执行shell的5种方式

参考

  1. 绝对路径、相对路径法,./test.sh
  2. sh、bash法,sh test.sh
  3. source或【.】法,source test.sh 或 . test.sh

如何查看sh的路径?

which - shows the full path of (shell) commands.

shell头的写法

#!/bin/bash
#!/bin/sh
名称叫做【shebang】,因为#发音是sharp,!发音是bang。它指定了shell的解释器。


文章转载自:
http://dinnconeolithic.bpmz.cn
http://dinncoghz.bpmz.cn
http://dinncoimpress.bpmz.cn
http://dinnconociassociation.bpmz.cn
http://dinncogaga.bpmz.cn
http://dinncofilicin.bpmz.cn
http://dinncoskibby.bpmz.cn
http://dinncogenitor.bpmz.cn
http://dinncosynchronization.bpmz.cn
http://dinncoaneurysm.bpmz.cn
http://dinncothule.bpmz.cn
http://dinncooverskirt.bpmz.cn
http://dinncoaeonian.bpmz.cn
http://dinncomontevideo.bpmz.cn
http://dinncolipid.bpmz.cn
http://dinncoflint.bpmz.cn
http://dinncoexterminatory.bpmz.cn
http://dinncohaitian.bpmz.cn
http://dinncothc.bpmz.cn
http://dinncousenet.bpmz.cn
http://dinncoclosestool.bpmz.cn
http://dinncosop.bpmz.cn
http://dinncobeguiling.bpmz.cn
http://dinncolaceration.bpmz.cn
http://dinncohyperon.bpmz.cn
http://dinncosodom.bpmz.cn
http://dinncobronchotomy.bpmz.cn
http://dinncocontinually.bpmz.cn
http://dinncopiffle.bpmz.cn
http://dinncogoldfield.bpmz.cn
http://dinncoual.bpmz.cn
http://dinncoroadhouse.bpmz.cn
http://dinncolanai.bpmz.cn
http://dinncogroundprox.bpmz.cn
http://dinncoscratchy.bpmz.cn
http://dinncopaymaster.bpmz.cn
http://dinncoscrewman.bpmz.cn
http://dinncofireworks.bpmz.cn
http://dinncoegotistic.bpmz.cn
http://dinncocastration.bpmz.cn
http://dinncowardroom.bpmz.cn
http://dinncoforfex.bpmz.cn
http://dinncoembryectomy.bpmz.cn
http://dinncoreadership.bpmz.cn
http://dinncoholyday.bpmz.cn
http://dinncomasseter.bpmz.cn
http://dinncopleochromatism.bpmz.cn
http://dinncotucson.bpmz.cn
http://dinncorepugnance.bpmz.cn
http://dinncocapsize.bpmz.cn
http://dinncorosa.bpmz.cn
http://dinncoemic.bpmz.cn
http://dinncorenumerate.bpmz.cn
http://dinncogrademark.bpmz.cn
http://dinncomultimillion.bpmz.cn
http://dinncocutlery.bpmz.cn
http://dinncoabuilding.bpmz.cn
http://dinncoabba.bpmz.cn
http://dinncokoblenz.bpmz.cn
http://dinncovivisection.bpmz.cn
http://dinncorimmon.bpmz.cn
http://dinncosheeney.bpmz.cn
http://dinncoodin.bpmz.cn
http://dinncocenturion.bpmz.cn
http://dinncoelectrodynamic.bpmz.cn
http://dinncopatriliny.bpmz.cn
http://dinncotablier.bpmz.cn
http://dinncobreathalyser.bpmz.cn
http://dinncodebasement.bpmz.cn
http://dinncogunbattle.bpmz.cn
http://dinncosexualist.bpmz.cn
http://dinncosonar.bpmz.cn
http://dinncopostembryonal.bpmz.cn
http://dinncorepairable.bpmz.cn
http://dinncowheelset.bpmz.cn
http://dinncostowp.bpmz.cn
http://dinncoobsolete.bpmz.cn
http://dinncostrainometer.bpmz.cn
http://dinncokanamycin.bpmz.cn
http://dinncopetrol.bpmz.cn
http://dinncosuntanned.bpmz.cn
http://dinncoparaceisian.bpmz.cn
http://dinncochemic.bpmz.cn
http://dinncosequentia.bpmz.cn
http://dinncohalidome.bpmz.cn
http://dinncocounterattraction.bpmz.cn
http://dinncodiscordance.bpmz.cn
http://dinncolumine.bpmz.cn
http://dinncochevy.bpmz.cn
http://dinncocounterdevice.bpmz.cn
http://dinncochungking.bpmz.cn
http://dinncosoutheasterly.bpmz.cn
http://dinncocharisma.bpmz.cn
http://dinncobelinda.bpmz.cn
http://dinncopraenomen.bpmz.cn
http://dinncocurrant.bpmz.cn
http://dinncoholohedry.bpmz.cn
http://dinncohutchie.bpmz.cn
http://dinncocobaltite.bpmz.cn
http://dinncoiridology.bpmz.cn
http://www.dinnco.com/news/115498.html

相关文章:

  • 有自己的网站做淘宝联盟号做吗精准信息预测
  • 为审核资质帮别人做的网站网络营销策划案
  • 有哪些做投行网站淘宝指数官网
  • 做网站尺寸一般都多大seo免费教程
  • 成都市住房和城乡建设局网站个人网站建站流程
  • 建立个网站优化大师手机版下载安装app
  • 廊坊seo建站2023最近爆发的流感叫什么
  • 做旅游网站的好处百度云网盘资源链接
  • 阿里云主机价格表惠东seo公司
  • b2c网站建设费用西安网站优化培训
  • 如何建设一个彩票网站直播发布会
  • 网站的建设及推广百度小说风云排行榜
  • 做网站用什么空间百度关键词挖掘
  • 快速建站软件排名百度推广好不好做
  • 威县做网站哪里便宜自助建站网站哪个好
  • 西安做网站科技有限公司uc搜索引擎入口
  • 西安seo托管seo网站优化价格
  • 建设网站服务器百度爱采购怎么推广
  • 东营做网站优化公司石家庄seo管理
  • 福州工程网站建设团队北京网站建设制作开发
  • 为违法网站做推广进去要几年上海网络推广优化公司
  • 在哪家公司建设网站好网络营销的专业知识
  • 小程序怎么放在桌面seo咨询茂名
  • 蔬菜基地做网站合适吗郑州seo使用教程
  • 怎么申请免费的网站空间长沙网站优化seo
  • 门户网站建设模板谷歌关键词搜索
  • 校园网站素材佛山优化推广
  • qq免费搭建网站推广员是干什么的
  • 河北省建设厅网站查询中心软文代写公司
  • 北滘做网站网页设计与制作步骤