[Shell]Shell常用特殊符号


符合

含义

&&

command1 && command2:命令1返回真(命令返回值 $? == 0)后,命令2才能被执行。可以用于if判断。

cp 1.txt ../ && echo "succes" #-->success

cp 1.txt ../ && rm -f ../1.txt && echo "success" -->success

||

command1 || command2:命令1返回假(命令返回值 $? == 1)后,命令2才能被执行。可以用于if判断。

cp 1.txt ../ || echo "fail" #-->fail

cp 1.txt ../ || rm ../1.txt || echo "fail" -->fail

&

command1 & command2 & command3 :3个命令同时执行

command &:comand命令在后台运行,实际上是将命令放入到一个作业队列中。默认情况下,进程是前台进程,这时就把Shell给占据了,我们无法进行其他操作,对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以在启动参数的时候加一个‘&‘实现这个目的。

前后台间切换:可以通过bg <jobid>(background)和fg<jobid>(foreground)命令将其在前后台间状态切换。

|

管道,上一个的命令输出作为下一个命令的输入; 把前面的命令运行的结果丢给后面的命令. 并不是所有的命令都可以的,一般针对文档操作的命令比较常用,例如cat, less, head, tail, grep, cut, sort, wc, uniq, tee, tr, split, sed, awk等等,其中grep, sed, awk为正则表达式必须掌握的工具

ls | wc –l -->11

( )

( command1;command2;command3;... ):执行一组命令,命令群组概念,命令自己用;隔开,末尾命令可以不用;隔开,第一个命令与(之间可以没有空格

( pwd;cd ..;pwd ) #-->/home/robot   /home

[ ]

用于测试命令,可以理解为test命令

if [ "$?" != 0 ]  <==> if test "$?" != 0

$[ ]

整数计算(+-*/%): echo $[2-3] -->1

浮点数计算(+-*/):c=$(echo "0.5/0.5"|bc);echo $c -->1

$(())

对括号内的表达式求值,

echo $((1+1)) -->2 整数运算+-*/%

{ }

{ command1;command2;command3;... }:执行一组命令, 命令群组概念,命令自己用;隔开,末尾命令也需要;隔开,第一个命令与{之间必须有空格

A=1;echo $A;{ A=2; };echo $A #--> 1 2

A=1;echo $A;( A=2; );echo $A #--> 1 1

(( ))

这组符号的作用与 let 指令相似,用在算数运算上,是 bash 的内建功能

""

双引号,把它所包含的内容作为普通字符,但单引号‘’,反斜线\,美元符号$,反单引号``除外

a=1;echo "1+$a";-->1+1

a=1;echo "1+‘$a‘";-->1+‘1‘

a=1;echo "1+$‘a‘";-->1+$‘a‘

echo "\$a";->$a

‘‘

单引号,把它所包含的内容作为普通字符,无例外

a=1;echo ‘1+$a‘;-->1+$a

``

反单引号(与~同一键),`command`与$(command)的含义相同,都是返回当前执行命令的结果
命令替换,命令替换是指Shell可以先执行命令,将输出结果暂时保存,在适当的地方输出。

p=`pwd`;echo $p; -->/home

\

转义字符, 把符号(eg:*|&)的特定含义去掉,使其变成普通标点符号

;

;分号:在 shell 中,担任"连续指令"功能的符号就是"分号"

command1;command2;command3:不管前面的命令执行成功与否,后面的命令继续执行

;;

连续分号:专用在 case 的选项,担任 Terminator 的角色

#

#井号:注释

!

通常它代表反逻辑的作用,如条件判断中,用 != 来代表"不等于"

?

代表任意一个字符

*

代表零个或多个字符或数字

**

次方运算

echo $((2**3)) –>8

$

变量取值

a=1;echo $a;-->1

 

 

 

 


$的扩展符号


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。