ps -f 查看进程
bash 新建子bash
exit 退出子bash
开不开子shell的区别在于:环境变量的继承关系,如:子shell中的设置的变量,在父shell不可见。
(在子shell中的更改,无法影响父shell)
(父shell中定义的变量,子shell不可见,除非提升为全局)
变量定义规则
- 字母数字下划线,不能以数字开头,环境变量建议大写
- 等号两侧不能有空格
- 变量默认字符串类型,无法数值运算
- 变量值有空格,用双引号和单引号括起来
系统预定义变量
常用系统变量:$HOME $PWD $SHELL $USER等
全局:子shell也有效
局部:只对当前shell有效
显示当前shell所有变量:set
显示系统shell环境变量:env | less
查看某变量: echo $变量名
用户自定义变量
定义变量:变量名=变量值
(不能有空格,若为有空格的字符串,用“ ”或‘ ’)
(为局部变量)
(export 变量名 提升为全局变量)
撤销变量:unset 变量名
声明静态变量:readonly 变量
运算符 a=
(
(
1
+
5
)
或
a
=
((1+5) 或a=
((1+5)或a=[1+5]
echo $a
6
特殊变量
$n
n为数字,0为脚本名,1-9为参数,10以上的参数用大括号表示{10}
$#
获取输入参数个数,常用于循环,判断参数个数是否正确
$*
命令行中所有参数(看作整体)
$@
命令行中所有参数(区分对待)
$?
最后一次执行命令的返回状态(正常为0)
运算符
expr 1 + 2
expr 1 - 2
expr 1 * 2
echo $[1*2]
echo
(
(
1
∗
2
)
)
a
=
((1*2)) a=
((1∗2))a=(expr 5 * 2)
a=反引号expr 1 * 2反引号
expr比较麻烦,可以用[ ]或(( ))