shell的各符号.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
shell的各符号

1、{}大括号: ??? 用法一:通配符扩展 ??? eg: ls my_{finger,toe}s ??? 这条命令相当于如下命令的组合: ??? ls my_fingers my_toes ??? eg: mkdir {userA,userB,userC}-{home,bin,data}我们将得到 userA-home, userA-bin, userA-data, userB-home, userB-bin,userB-data,userC-home, userC-bin, userC-data,这几个目录用法二:可用于语句块的构造,语句之间用回车隔开。如果你想在某些使用单个语句的地方(比如在AND或OR列表中)使用多条语句,你可以把它们括在花括号{}中来构造一个语句块。 ??? eg: ??? { ??? grep -v $cdcatnum $strack_file $temp_file ??? cat $temp_file $strack_file ??? echo ??? cat -n file1 ??? } (注:以上大括号中的四句命令够成了一个语句块) ??? 用法三:参数扩展 ??? ${name:-default}使用一个默认值(一般是空值)来代替那些空的或者没有赋值的变量name; ??? ${name:=default}使用指定值来代替空的或者没有赋值的变量name; ??? ${name:?message}如果变量为空或者未赋值,那么就会显示出错误信息并中止脚本的执行同时返回退出码1。 ??? ${#name}给出name的长度 ??? ${name%word} 从name的尾部开始删除与word匹配的最小部分,然后返回剩余部分${name%%word} 从name的尾部开始删除与word匹配的最长部分,然后返回剩余部分${name#word} 从name的头部开始删除与word匹配的最小部分,然后返回剩余部分${name##word} 从name的头部开始删除与word匹配的最长部分,然后返回剩余部分(注,name为变量名,word为要匹配的字符串) ??? 用法三在处理字符串和未知变量时,是很有用的。 ??? 2、[]中括号: ??? 用法一:通配符扩展: ??? 允许匹配方括号中任何一个单个字符 ??? eg: ls /[eh][to][cm]* ??? 相当于执行 ls /etc /home(若有/eom目录,就相当于会执行ls /etc /home /eom) ??? 注:在mkdir命令下不能扩展 ??? 用法二:用于条件判断符号: ??? []符号可理解为指向test命令的一个软链接,所以其用法可完全参照test,将test位置替换为[便可。 ??? eg: if [ $? != 0 ] 等价于 if test $? != 0 ??? then echo Executes error ? ??? 3、`command` 反引号:`command`与$(command)的含义相同,都是返回当前执行命令的结果eg: #!/bin/sh for file in $(ls f*.sh);do ??? lpr $file ??? done ??? exit 0 ??? 该例实现了扩展f*.sh给出所有匹配模式的文件的名字。 ??? 4、string单引号和string双引号 ??? 双引号:如果想在定义的变量中加入空格,就必须使用单引号或双引号, ??? 单、双引号的区别在于双引号转义特殊字符而单引号不转义特殊字符 ??? eg: $ heyyou=home ??? $ echo $heyyou ??? $ $heyyou($没有转义) ??? eg: $ heyyou=home ??? $ echo $heyyou ??? $ home (很明显,$转义了输出了heyyou变量的值) ??? 5、$#它的作用是告诉你引用变量的总数量是多少; ??? $$它的作用是告诉你shell脚本的进程号; ??? $* 以一个单字符串显示所有的脚本传递的参数。等价于$1 $2 $3.......;$@ 与$*基本类似(参见序号7),但在数组赋值时有些不同;$? 前一个命令的退出码; ??? $-显示shell使用的当前选项; ??? $! 最后一个后台运行的进程ID号。 ??? 6、$((...))语法:对括号内的表达式求值 ??? eg: ??? #!/bin/sh ??? x=0 ??? hile [ $x -ne 10 ];do ??? echo $x ??? x=$(($x+1)) ??? done ??? exit 0 ??? 7、shell中几种特殊的参数变量的引用 ??? $1、$2、$3

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档