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

网站推广基本方法是wordpress链接微博

网站推广基本方法是,wordpress链接微博,经销商网,刚做的网站搜索不到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://www.yayakq.cn/news/996857/

相关文章:

  • 建设公司网站模板企业怎么建设网站
  • iis网站架设教程杭州网站建设过程
  • 个人做网站能备案吗正规排名网站推广公司
  • wordpress两个站点共用用户移动平台3g手机网站前端开发布局技巧汇总
  • 品牌形象网站源码wordpress设置html页面
  • 网站飘窗怎样做wordpress 自定义布局
  • 图书馆网站建设方案广州黄埔区开发区建设局网站
  • 博罗县建设局网站关键词排名优化怎么做
  • 网站开发没有完成 需要赔偿多少大连网站建设工作室
  • 企业网站个人可以备案吗建盏厂家联系电话
  • 西安网站建设推广专家做网站副业
  • 本地的南通网站建设快速建站平台源码
  • 购买网站开发服务费入账做网站公司哪家强
  • 网站开发的需求分析wordpress文章换行符
  • 农产品网站建设案例宁波建设网上银行
  • 用asp.net制作一个网站需要多久scratch少儿编程软件下载
  • 怎么改网站关键词有哪些做投行网站
  • 网站的优化公司做网站也分内存大小的吗
  • wordpress 网站费用专业的东莞网站设计
  • 做代理网站建设厂招工信息网站
  • 女生做网站前台做淘客都有什么网站
  • 商丘网站推广个人公众号如何开通
  • 搜索引擎中注册网站视频点播网站开发
  • 酒店网站程序c 网站开发网易云课堂百度云下载
  • 福州网站建设营销方案福州商城网站建设
  • 企业响应式网站建设PHP MySQL 网站开发实例
  • 网站怎么做微信送红包活动想学软件编程 哪个学校好啊
  • 西安品牌网站建设wordpress做网站优点
  • html怎么做网站背景wordpress表单收集
  • 如何利用国外的网站开发客户广告公司服务方案