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

自建网站 做自定义导航图片编辑器在线制作

自建网站 做自定义导航,图片编辑器在线制作,如何开发一个微网站,中国拟在建项目网官网什么是bash、dash Bash(GNU Bourne-Again Shell)是许多Linux平台的内定Shell#xff0c;事实上#xff0c;还有许多传统UNIX上用的Shell#xff0c;像tcsh、csh、ash、bsh、ksh等等。 GNU/Linux 操作系统中的 /bin/sh 本是 bash (Bourne-Again Shell) 的符号链接#xff0…什么是bash、dash Bash(GNU Bourne-Again Shell)是许多Linux平台的内定Shell事实上还有许多传统UNIX上用的Shell像tcsh、csh、ash、bsh、ksh等等。 GNU/Linux 操作系统中的 /bin/sh 本是 bash (Bourne-Again Shell) 的符号链接但鉴于 bash 过于复杂有人把 bash 从 NetBSD 移植到 Linux 并更名为 dash (Debian Almquist Shell)并建议将 /bin/sh 指向它以获得更快的脚本执行速度。Dash Shell比 Bash Shell小的多符合POSIX标准。 Debian和Ubuntu中/bin/sh默认已经指向dash这是一个不同于bash的shell它主要是为了执行脚本而出现而不是交互它速度更快但功能相比bash要少很多语法严格遵守POSIX标准。 要知道自己自己的/bin/sh指向那个解析器可使用 ls -al /bin/sh 查看 netskynetsky:~$ ls -al /bin/sh lrwxrwxrwx 1 root root 4 Mar 23 2022 /bin/sh - dashbash和dash语法区别 bash和dash语法上的主要区别有 1. 定义函数 dash中没有function关键字而bash可以有也可以没有function关键字 # dash这里没有function关键字使用function将在(附近报语法错误 function func1(){echo print func1 }# 该写法bash和dash均支持 func2(){echo print func2 }func1 func2结论定义函数时不使用function关键字达到通用的目的。 2. select var in list; do command; done dash不支持该写法需要改成while read case 来实现 # dash不支持select选择语句 select animal in lion tiger panda flower; doif [ $animal flower ]; thenecho Flower is not animal.breakelseecho Choose animal is: $animalfi done# bash和dash均支持while read case 写法 while true docat EOF1) lion2) tiger3) panda4) flower EOFread -p input : animalcase $animal in1) echo lion;;2) echo tiger;;3) echo panda;;*) echo not animalbreak;;esac done结论使用while read case写法达到通用的目的。 3. {0…10} dash不支持{m…n}展开识别为单个整体 # dash不支持{m..n}展开 for i in {0..10} doecho $i done# bash和dash均支持 for i in $(seq 11) doecho $i done结论使用seq或者其它loop写法为了灵活使用的话可使用bash并使用bash 脚本名称 的方式运行脚本。 4. here strings dash不支持here string改成here document # dash不支持here strings cat here strings# bash和dash均支持here document cat EOF here document EOF结论使用here document 达到通用的目的。 5. word重定向标准输出和标准错误 当word为非数字时bash中word变成重定向标准错误和标准输出到word中 而dash中wordword不支持非数字替代方法是 word 21 # bash支持的写法 echo 1234 err1.log# bash和dash均支持的写法 echo 5678 err2.log 21结论使用通用的重定向标准输入和标准错误写法。 6. 数组 bash支持数组而dash不支持需要替代 # bash支持的写法 array(test001 test002 test003) echo ${array[2]}# bash和dash均支持的写法需注意会替换掉传参需及时赋值 vartest001 test002 test003 set -- $var echo ${3} # 超过10个需注意${10}写法结论bash很灵活如果需要通用需要使用替代写法。 7. 子字符串扩展 bash支持${parameter:offset:length}等写法 而dash不支持这类扩展替代方法是使用其它外部命令 strAbcdefgh# bash和dash均支持的写法cut从第N位开始 echo $str | cut -b 4-5# bash支持的写法跳过offsetM位从M1位开始 echo ${str:3:2}结论bash很灵活如果需要通用需要使用替代写法。 8. 大小写转换 bash支持 p a r a m e t e r p a t t e r n , {parameter^pattern}, parameterpattern,{parameter^^pattern}大小写替换写法 而dash不支持这类扩展替换方法是使用使用其它外部命令如tr/sed/awk str1abcdefgh str2ABCDEFGH# bash和dash均支持 echo ${str1} | sed s/^\b[a-z]/\U/ echo ${str2} | sed s/^\b[A-Z]/\L/echo ${str1} | tr [:lower:] [:upper:] echo ${str2} | tr [:upper:] [:lower:]# bash支持 ^(大写), ,(小写), ~(反转) echo ${str1^} echo ${str1^^}echo ${str2,} echo ${str2,,}结论bash很灵活如果需要通用需要使用替代写法。 9. 进程替换(command), (command) bash支持进程替换 dash不支持替代方法是使用临时文件转换 # bash和dash均支持临时文件的写法这里只是示例 echo test001 10.tmp while read user doecho $user done 10.tmp# bash支持进程替换注意 () 是个整体 read user (echo test002) echo $user结论bash很灵活如果需要通用需要使用替代写法。 10. [ str1 str2 ]和[ str1 str2 ] bash两种方法均支持 dash仅支持写法 strA# bash和dash均支持 [ $str A ] echo 1 || echo 2# bash支持 [ $str A ] echo 11 || echo 12结论使用写法达到通用的目的。 11. [[]] 加强版test bash支持[[]] 写法可实现正则匹配等强大功能 dash不支持该语法需要使用替代写法。 tel23800138000# bash和dash均支持使用外部命令方式 echo $tel | sed s/2[0-9]\{10\}/1/# bash支持 [[ $tel ~ 1[0-9]{10} ]] echo 1 || echo 2结论bash很灵活如果需要通用需要使用替代写法。 12. for ((expr1; expr2; expr 3)); do list; done bash支持C语言格式的for循环 dash不支该语法需要使用替代写法如while $((expr))。 # bash和dash均支持 i0 while [ $i -lt 10 ] doecho $ii$((i1)) done# bash支持 for ((i0;i10;i)) doecho $i done结论bash很灵活如果需要通用需要使用替代写法。 13. let命令和((expression)) bash支持let也支持((expression)) dash不支持替代方法是采用$(())或者使用其它外部命令做计算 a10# bash和dash均支持下面两种写法 a$((a1)) echo $aa$(expr $a 1) echo $a# bash支持let和((expression))写法 let a echo $a((a)) echo $a结论bash很灵活如果需要通用需要使用替代写法。 14. $((expression)) bash支持i,i,i–这样的表达式 dash不支持,–替代方法是i1,ii1 a10# bash和dash均支持 echo $((aa1))# bash支持 echo $((a))结论bash很灵活如果需要通用需要使用替代写法。 总结 bash相对于dash来说很灵活有更多的语法支持。 需要通用的情况下需要注意差异使用符合POSIX标准的写法如果确定能使用bash的情况下将能更灵活使用。 需要特别注意的是 如果shell脚本是使用bash编写但当前的/bin/sh链接到的是dash那么sh 脚本 将会使用dash来执行而忽视头部shell指示如果shell脚本是使用bash编写请使用bash 脚本 或者 “./脚本” 的方式执行脚本。
http://www.ho-use.cn/article/10822437.html

相关文章:

  • 淘客网站建设要求教育行业怎么做网站投放
  • 南宁模板建站定制网站discuz建站流程
  • 做网站怎样写标题建湖建网站的公司
  • 青岛哪里有做网站的目前比较新的网站建设技术
  • 网站建设绿茶网站如何做业务
  • 专业的网站优化公司排名太原建设网站的公司
  • 企业网站建设开发多少钱wordpress 时间归档
  • 如何更换网站模板上海牛巨微seo关键词优化
  • 给一个公司做网站需要多久wordpress做博客好吗
  • 免费创建个人网站做网站赚钱多吗
  • 怎么建造个人网站网站建设与管理专业介绍
  • 上海金山网站建设公司短视频营销策略有哪些
  • 传播网站建设河南代做网站
  • 通江移动网站建设小程序搭建服务公司
  • 龙采哈尔滨建站公司济南营销网站建设公司
  • 建设银行审计招聘网站做网站的素材都在哪里下载
  • 石龙镇仿做网站广东建设安全协会网站
  • 一般网站后台都是哪里做找网上公司做网站
  • 网站建设不包括哪个阶段蛋糕店微网站
  • 中企动力做网站 知乎前端培训机构
  • 拥有域名后怎么建设网站使用aspx做电影网站
  • 网站登录系统内部错误北京优化公司司
  • 网站建设方案策划书ppt模板网站gif横幅广告怎么做
  • 罗村建网站游戏类网页设计
  • 北京网站建设正邦国家工业和信息化部网站备案系统
  • 大型门户网站开发信息流优化师简历
  • 睢宁网站制作合肥网络推广策划方案
  • 网站建设方案百度云搜索引擎入口盘搜搜
  • 遵义北京网站建设庆安建设局网站
  • 专业北京网站建设wordpress去掉google