<i id='g3rfu'></i>

      <dl id='g3rfu'></dl>

      <code id='g3rfu'><strong id='g3rfu'></strong></code>

    1. <tr id='g3rfu'><strong id='g3rfu'></strong><small id='g3rfu'></small><button id='g3rfu'></button><li id='g3rfu'><noscript id='g3rfu'><big id='g3rfu'></big><dt id='g3rfu'></dt></noscript></li></tr><ol id='g3rfu'><table id='g3rfu'><blockquote id='g3rfu'><tbody id='g3rfu'></tbody></blockquote></table></ol><u id='g3rfu'></u><kbd id='g3rfu'><kbd id='g3rfu'></kbd></kbd>
    2. <ins id='g3rfu'></ins>

        <fieldset id='g3rfu'></fieldset>
        <span id='g3rfu'></span>

          <acronym id='g3rfu'><em id='g3rfu'></em><td id='g3rfu'><div id='g3rfu'></div></td></acronym><address id='g3rfu'><big id='g3rfu'><big id='g3rfu'></big><legend id='g3rfu'></legend></big></address>

          <i id='g3rfu'><div id='g3rfu'><ins id='g3rfu'></ins></div></i>

          1. shell脚本中一些特殊符号

            • 时间:
            • 浏览:25
            • 来源:124软件资讯网

              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剧本的历程号;

              $* 以一个单字符串显示所有的剧本通报的参数  。等价于{GetProperty(Content)} $2 $3.......;$@ 与$*基本类似(参见序号7)  ,但在数组赋值时有些差别;$? 前一个下令的退出码;

              $-显示shell使用的当前选项;

              $! 最后一个后台运行的历程ID号  。

              12下一页