shell 展开

字符展开

[hjw@localhost bin]$ echo *

输出~目录下的文件

路径名展开

[hjw@localhost redis-3.2.9]$ echo r*

命令会列出redis-3.2.9目录下的所有r开头的文件

算术表达式展开

[hjw@localhost ~]$ echo $((2+2))

可以直接进行算术运算

花括号展开

这个命令会根据花括号中的值来创建多个字符串

[hjw@localhost ~]$ echo Front-{A,B,C}-Back
输出结果:
Front-A-Back Front-B,C-Back

这个命令使用了 .. 符号
[hjw@localhost ~]$ echo Number_{1..5}
输出结果:
Number_1 Number_2 Number_3 Number_4 Number_5

还可以进行花括号嵌套

[hjw@localhost ~]$ echo a{A{1,2},B{3,4}}b
输出结果:
aA1b aA2b aB3b aB4b

利用这个特性,我们可以创建一系列规则相同的文件名

[hjw@localhost ~]$ mkdir {2007..2009}-0{1..9}
会创建如下规则的文件夹:
2007-01  2007-05  2007-09  2008-04  2008-08  2009-03  2009-07 
2007-02  2007-06  2008-01  2008-05  2008-09  2009-04  2009-08 
2007-03  2007-07  2008-02  2008-06  2009-01  2009-05  2009-09

命令替换

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

[hjw@localhost ~]$ ls -l $(which cp)
输出结果:
-rwxr-xr-x. 1 root root 155168 11月  6 2016 /usr/bin/cp
与下面这条命令相同:
[hjw@localhost ~]$ ls -l /usr/bin/cp

这样我们可以在不知道文件夹路径的情况下直接看到文件夹信息

单双引号对比

[hjw@localhost ~]$ echo text ~/*2.txt {a,b} $(echo foo) $((2+2)) $USER
text /home/hjw/hjw2.txt a b foo 4 hjw

[hjw@localhost ~]$ echo "text ~/*2.txt {a,b} $(echo foo) $((2+2)) $USER"
text ~/*2.txt {a,b} foo 4 hjw

[hjw@localhost ~]$ echo 'text ~/*2.txt {a,b} $(echo foo) $((2+2)) $USER'
text ~/*2.txt {a,b} $(echo foo) $((2+2)) $USER

单引号会禁止所有展开

转义字符

[hjw@localhost ~]$ echo "The balance for user $USER is: \$5.00"

这里有选择的阻止上 5使  5会被当作一个为空的变量

常见转义字符

\a  响铃(”警告”-导致计算机嘟嘟响)
\b  退格符
\n  新的一行。在类 Unix 系统中,产生换行。
\r  回车符
\t  制表符

echo 加上一个 e 参数就可以解析转义字符

[hjw@localhost ~]$ echo -e "Time's up \a"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值