shell展开

摘录整理自:http://billie66.github.io/TLCL/book/

波浪线展开

波浪线字符(“~”)有特殊的意思。当它用在 一个单词的开头时,它会展开成指定用户的家目录名,如果没有指定用户名,则是当前用户的家目录:
[me@linuxbox ~]$ echo ~
/home/me
算术表达式展开
算术表达式展开使用这种格式:
$((expression))
[me@linuxbox ~]$ echo $((2 + 2))
4
注意算术表达式中的幂运算符号是**,如5**2的值为25
花括号展开
通过花括号展开,你可以创建多个文本字符串
[me@linuxbox ~]$ echo Front-{A,B,C}-Back
Front-A-Back Front-B-Back Front-C-Back
参数展开
可以展开变量
[me@linuxbox ~]$ echo $USER
me
其中"USER"的变量包含你的 用户名。
命令替换
命令替换允许我们把一个命令的输出作为一个展开模式来使用:
[me@linuxbox ~]$ ls -l $(which cp)
-rwxr-xr-x 1 root root 71516 2007-12-05 08:58 /bin/cp
这里我们把 which cp 的执行结果作为一个参数传递给 ls 命令,因此要想得到 cp 程序的 输出列表,不必知道它完整的路径名。
双引号展开
如果你把文本放在双引号中, shell 使用的特殊字符,除了 $,\ (反斜杠),和 `(倒引号)之外, 则失去它们的特殊含义,被当作普通字符来看待。这意味着单词分割,路径名展开, 波浪线展开,和花括号展开都被禁止,然而参数展开,算术展开,和命令替换 仍然执行。
单引号展开
如果需要禁止所有的展开,我们使用单引号。
转义字符
有时候我们只想引用单个字符。我们可以在字符之前加上一个反斜杠,在这个上下文中叫做转义字符。
[me@linuxbox ~]$ echo "$USER"
me
[me@linuxbox ~]$ echo "\$USER"
$USER
有些使用了反斜杠的编码有特殊含义
转义序列 含义
\a 响铃(”警告”-导致计算机嘟嘟响)
\b 退格符
\n 新的一行。在类 Unix 系统中,产生换行。
\r 回车符
\t 制表符


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值