您的位置:首页 > 运维架构 > Shell

Linux bash Shell的命令行替换总结

2012-05-19 10:41 399 查看
类似于C语言的宏机制,执行命令前,bash shell要对命令行做一些替换,以下进行简单总结:

1、大括号{ }

{a,b,c} 会被替换成 "a b c" 。touch {a,b,c} 会生成三个空文件a b c 同样,touch {a,b,c}.txt 替换后相当于 touch a.txt b.txt c.txt

2、波浪号 ~

默认情况下,~表示当前用户的主目录, cd ~即进入用户主目录/home/user;

~user 则表示特定用户的主目录,~root 表示 /root

3、路径名匹配(glob) * ? [ ] [^ ]

假设当前目录下有 a.txt b.txt cc.txt 三个文件

ls *.txt 此时*.txt 会被替换为当前目录下匹配的 a.txt b.txt cc.txt 再执行ls

ls ?.txt
此时*.txt 会被替换为当前目录下匹配的 a.txt b.txt 再执行ls

ls [abc].txt 此时[abc].txt被替换为 a.txt b.txt 因为当前目录下没有c.txt这个文件

4、变量 $VAR ${VAR}

echo $VAR

echo ${VAR} 变量名保护

取出变量值,替换到命令中

5、算术 $(( expression ))

echo $((5+10)) 先进行运算,把结果替换到命令中,相当于 echo 15

6、命令替换 `command` $(command)

touch $(date +%F).txt 将$() 中的命令执行后的结果替换 得到 touch 2012-05-19.txt

touch `date +%F`.txt 具有同样效果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐