shell脚本学习笔记(二、shell中的扩展介绍)

查看历史命令

     可以用history命令来查看用户在命令行输入执行的命令列表(默认显示前1000条,可以通过环境变量来设置),在查看历史命令的过程中可以用快捷键Ctrl+R 来通过关键字来对命令列表进行过滤。

快速执行上一条命令

    可以用!!来执行是上一次执行过的命令。

Shell 中的扩展

   大括号扩展:大括号括号扩展是一种能够生成任意字符串序列的机制,其语法是有一个可选的钱缀和一个可选的后缀,中间是一组用大括号包裹用逗号分隔的字符串,例如

      echo  a{a,b,c} a

      输出的结果为

     aaa

     aba 

     aca

      echo {a..z} #输出a到z的所有字母a b c .... z

      echo {0..10} #输出0到10的所有数字 0 1 3 .. 10

      echo {a...c}{1...3}

   波浪号扩展:大波浪号扩展,可以用来指代自己的主目录,或其他人的组目录

      cd ~ # 进入自己的主目录

      cd  ~XX # 进入XX的主目录

   命令替换:用命令的输出替换命令本身,主要有下面这两种形式

   $(COMMAND)

   'CPMMAND'

  bash 进行这个扩展的时候,先执行命令,然后用命令标准输出结果来取代命令

    文件名扩展:如果shell没有设置-f选项,就支持文件名扩展,主要以下面三中统配符实现

   * 匹配任意的字符串

   ?匹配任意单个字符串

   [...]匹配方括号中任意的字符

   例如显示etc 下所有的配置文件 

   ls  /etc/*.conf

#和%扩展

   这种扩展只可以扩展参数值得一部分,用来指定的模式移除参数值中字符移除指定的一部分,“#”和“%”表示移除匹配字符串的最短字符串,“#”从字符串的开头开始匹配,“%”从字符串的末尾开始匹配。而扩展字符“##”和“%%”移除匹配到的最长字符串。

例如:

执行的结果如下:

字符长度扩展

  此扩展可以用来得到参数值字符串的长度值,如下:

 fileName="hello worad"

   echo ${#fileName}

子字符串扩展

语法:${参数}

你可能感兴趣的:(Linux)