Shell学习15天(Shell特性2/2)- 03day

(一)命令排序

分号:; 不具备逻辑判断机制    前面即使命令失败,后续命令也会照常执行

&&:        具备逻辑判断,前面命令成功后,后面命令才会执行。比如常用: ./configure&&make&&make install

 || :             具备逻辑判断,前面命令失败后,后面命令才会执行。

 比如: mkdir /home/11/22/33 && echo "ok..." || echo "failed..."         -- 创建成功就打印ok,创建失败打印failed

扩展: true命令和false命令,true 永远返回为i真0,false永远返回为假(非0)

注意:这里将&符号用法做一个简单的归纳:

command &                                 后台执行

command &>/dev/null                混合重定向(包含标准输出1,错误输出2)

command 1 && command2      命令排序,逻辑判断

(二)Shell通配符(元字符),表示的不是本意

* 匹配任意多个字符 ls in*  find / -iname "*.txt" 

这里有点特殊的是,*作为通配符,在find中必须用引号,在其余命令中不能用引号

?匹配任意一个字符   touch love loove live l7ve;ll l?ve

[] 匹配括号中任意一个字符 [abc] [a-z] [0-9] [a-zA-Z0-9] [^a-zA-Z0-9]   ll l[io]ve    ll l[^a-z]ve  

()  在子shell中执行(cd /boot ; ls)     (umask  077; touch  file1000) --当前shell umask不会变

{}  集合    touch file(1..9)   -- 数字1-9  中间2个点     

     集合还有以下的用法,下面3条语句效果是一样的:

 

多层集合要从最外面一层开始分析

\   转义符号  , 让元字符回归本意,也能让一个普通字符变成具有特殊含义的字符,下面来练习练习:

让元字符回归本意:

让普通字符具备特殊含义:

以上的现象可能有几个地方不好理解,简单解释下:

转义符可以转义空格,echo jian\ mei   其实中间空格本来是分割echo 参数的符号,被转义后就变成了普通空格,所以“jian mei”变成了一个参数,所以有这个文件夹被创建了。还有通常会说转义符可以作为换行符,其实不是换行符,准确点说是转义符把换行符转义了。

发布了15 篇原创文章 · 获赞 0 · 访问量 3041

猜你喜欢

转载自blog.csdn.net/xx_ay/article/details/104291341