- 变量赋值
shell中变量无需声明,出现空格需要加“,命名与c语言一致,只支持整型和字符型。
var=value
${ var=value}
一个栗子用于区分不同:
$ cat shelldemo.sh
#!/bin/bash
echo ${var0="world"}
var=hello
echo var
echo $var
echo ${var="hello world"}
echo $var
$ ./shelldemo.sh
world
var
hello
hello
hello
- unset 清空变量
unset [变量名]
- 其它赋值模式
除=之外,还可用+、?、:?、:=、:-来赋值,通过以下栗子说明区别。
$ echo $var
$ echo ${var?value}
bash: var: value
$ echo ${var:?value}
bash: var: value
$ echo ${var:=value}
value
$ echo ${var:=change?}
value
$ unset var
$ echo ${var:-value}
value
$ echo $var
$ echo ${novar+value}
一些常见系统变量
1.PWD和OLDPWD
$ echo $PWD
/home/jin1ming/linux_shell
$ echo $OLDPWD
/home/jin1ming
2.PATH
$ echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/usr/local/go/bin
3.HOME
$ echo $HOME
/home/jin1ming
4.SHELL
$ echo $SHELL
/bin/bash
5.USER与UID
$ echo $USER
jin1ming
$ echo $UID
1000
6.PPID(父进程号)
$ echo $PPID
7071
7.$$(当前进程号)
$ echo $$
8695
8.PS1,PS2(命令提示变量)
#我在其它地方省略了一级命令提示符
[jin1ming@ML linux_shell]$ echo $PS1
\[\033[01;32m\][\u@\h\[\033[01;37m\] \W\[\033[01;32m\]]\$\[\033[00m\]
[jin1ming@ML linux_shell]$ echo $PS2
>
9.IFS(域分隔符)
默认为空格
$ echo $IFS