shell¶
linux标准fd¶
0: 标准输入(stdin),1: 标准输出(stdout),2: 标准错误(stderr)。shell命令后的2>/dev/null是将标准错误丢弃掉,不输出。
$传递参数¶
- $? : 显示最后命令的退出状态
- $#: 参数个数
- $*:获取参数,加""以“1 2 3”形式获取一个参数
- $@: 获取参数,加""以"1" "2" "3"形式获取多个参数
- $!: 后台运行的最后一个进程的ID号
- $$: 脚本运行的当前进程ID号
typeset命令¶
- -u 将第一个变量的字符变成大写
- -l 将第一个变量的字符变成小写
- -Ln 把变量变成一个左对齐的n个字符串(过长阶段)
- -Rn 把变量变成一个右对齐的n个字符串(过长截断)
eval¶
二次扫描运行
\((())与\)()与${}¶
- $()与``等价,都是用来命令替换的
- $()用于变量替换,#去掉左边,%去掉右边,单个#/%是最小匹配,##/%%是最大匹配
- ${#var}计算变量的长度
- $(())用于整数运算,(())可重定义变量值