bash shell 符号变量中用法:
( ):作用域为子shell
jagger@2004:~/working/bash$ var0=hi
jagger@2004:~/working/bash$ echo $var0
hi
jagger@2004:~/working/bash$ (var0=hello)
jagger@2004:~/working/bash$ echo $var0
hi
{ }:限定边界
jagger@2004:~/working/bash$ string="hello"
jagger@2004:~/working/bash$ echo $string
hello
jagger@2004:~/working/bash$ echo "$stringworld!"
!
jagger@2004:~/working/bash$ echo "${string}world!"
helloworld!
' ':包括的字符串中转义字符无效;不能包含 ';特殊字符无效
jagger@2004:~/working/bash$ echo "$0"
bash
jagger@2004:~/working/bash$ echo '$0'
$0
jagger@2004:~/working/bash$ echo "\"$string\""
"hello"
jagger@2004:~/working/bash$ echo '\"$string\"'
\"$string\"
[ ] [[ ]]:
$[ ]:可以直接使用符号
jagger@2004:~/working/bash$ val1=$[1+2];echo $val1
3
jagger@2004:~/working/bash$ echo $[1==2]
0
jagger@2004:~/working/bash$ echo $[1>=2]
0
jagger@2004:~/working/bash$ echo $[1<=2]
1
jagger@2004:~/working/bash$ echo $[ 1 == 2 ]
0
jagger@2004:~/working/bash$ echo $[ 1 >= 2 ]
0
jagger@2004:~/working/bash$ echo $[ 1 <= 2 ]
1
bash shell 命令引用:
` `:这里是一对反引号,不是单引号
命令替换、引用
等价于 $( ),建议使用这样的方式,不容易看错
jagger@2004:~/working/bash$ val0=`expr 2 + 2`
jagger@2004:~/working/bash$ echo $val0
4
jagger@2004:~/working/bash$ val1=$(expr 2 + 3)
jagger@2004:~/working/bash$ echo $val1
5
[ ]:条件判断中,需要有空格
jagger@2004:~/working/bash$ if [2 -lt 3];then echo "true";fi
[2: command not found
jagger@2004:~/working/bash$ if [ 2 -lt 3];then echo "true";fi
bash: [: missing `]'
jagger@2004:~/working/bash$ if [ 2 -lt 3 ];then echo "true";fi
true
jagger@2004:~/working/bash$ if [[ 3 > 2 ]];then echo true;else echo fale;fi
true
jagger@2004:~/working/bash$ if [[ 1 > 2 ]];then echo true;else echo fale;fi
fale
元字符 | 描述 |
; | 命令分隔符 |
& | 后台处理Shell命令 |
() | 命令组,创建一个子Shell |
{} | 命令组,但是不创建子Shell |
| | 管道 |
< > | 输入输出重定向 |
$ | 变量前缀 |
*[]? | 用于文件名扩展的Shell通配符 |