• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
小小慧
博客园    首页    新随笔    联系   管理    订阅  订阅
5 echo展开

一、(字符)展开

1.echo在标准输出中打印出他的文本

echo this is a test
输出 this is a test

2.输出通配符时,比如*代表匹配文件名的任何字符

echo *
输出 Desktop Decuments ls-output.txt Music Picture Temple Videos

shell把*展开成了另外的东西(在这种情况下,就是在当前工作目录下的文件名字)

 

二、路径名展开——用*

1.如上,打印当前工作目录

echo *
输出 Desktop Decuments ls-output.txt Music Picture Temple Videos

2.找到首字母为D的文件

echo D*
输出Desktop Documents

3.找到最末字符是s的文件

echo *s
输出Documents Pictures Temples Videos

4.查看主目录之外的目录

echo /usr/*/share
输出 /usr/kerberps/share  /usr/local/share

5.另外,隐藏文件名依旧可以借此展开

echo .*
输出. .. .bash_logout .bashrc .cache .config .gconf  ICEauthority .local .profile

 

三、波浪线展开

1.当他用在一个单词的开头,它会展开指定用户的主目录名

echo ~xiaohui
输出 /home/xiaohui

2.如果没有指定用户名,则是当前用户的主目录

echo ~
输出  /home/mylinuxusername

 

四、算术表达式展开

echo $(($((5**2))*3))  注意**是去幂,另外使用$需要两层$(())
输出 75

 

五、花括号展开

          创建多个文本字符串

1 echo Front-{A,B,C}-Back 输出 Front-A-Back Front-B-Back  Front-C-Back
2 echo Number_{1..5} 输出Number_1 Number_2 Number_3 Number_4 Number_5
3 echo a{A{1,2},B{3,4}}b  输出aA1b aA2b aB3b aB4Bb

 

六、参数展开

1.展开用户名

echo $USER    输出 mylinuxname

2.查看有效的变量列表

printenv | less

 

七、命令替换 

允许我们把一个命令的输出作为一个展开模式来使用

echo $(ls)
输出 Desktop Documents ls-output.txt Music Pictures Public Templates Videos

 

八、引用   控制展开,选择的禁止不需要的展开

1.shell的echo命令删除多余空格

echo this is a             test
输出 this is a test

2.参数展开把$1的值替换成一个空字符串,因为1是没有定义的变量

echo the total &100.00
输出 the rotal 00.00

 

九、双引号

shell使用的特殊字符,除了& \反斜杠  ‘倒引号之外,则失去他们的特殊含义,被当做普通字符来看待,这意味着单词分割、路径名展开*、波浪线展开~和或花括号展开{}都被禁止,

                                                                                                                          然而参数展开、算数展开和命令替换仍然执行

1.例

ls -l "two words.txt"   实际文件名是two_words,所以如果写错了,写成了 two words是会出错的,但是如果使用了双引号,因为_和空格在双引号作用相同,所以,这样就可以正常作用了

2.一个例子区别之前情景

echo “this is a             test”
输出    this is a             test

3.命令替换产生微妙的影响

echo $(cal)   输出February 2008 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
echo "$(cal)"  输出类似cal输出 ……

 

十、单引号

用于禁止所有的展开

1 xiaohui@ubuntu:~$ echo test -/*.txt {a,b} $ {a,b} $(echo xiaohui) $((2+2)) $USER     输出 test -/*.txt a b $ a b xiaohui 4 xiaohui
2 xiaohui@ubuntu:~$ echo "test -/*.txt {a,b} $ {a,b} $(echo xiaohui) $((2+2)) $USER"   输出test -/*.txt {a,b} $ {a,b} xiaohui 4 xiaohui
3 xiaohui@ubuntu:~$ echo 'test -/*.txt {a,b} $ {a,b} $(echo xiaohui) $((2+2)) $USER'   输出test -/*.txt {a,b} $ {a,b} $(echo xiaohui) $((2+2)) $USER

 

十一、转义字符   \反斜杠

             使用转义字符消除文件命中一个字符的特殊含义

echo "the balance for user $USER is :\&5.00"     
输出the balance for user me is :&5.00

 

posted on 2016-08-17 21:09  小小慧  阅读(291)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3