1. 特殊字符
;;case终止符
""部分引用:$ \ ``可以使用
''全部引用:仅``可以使用
?测试操作
$变量替换正则表达式行结束符
:空命令
${}参数替换
$* $@ 位置参数
$?退出状态变量
()命令组
> &> &>> <重定向标准输出和标准错误
<<重定向 用于here document
<<< 重定向 用于here string
|管道,分析前面命令的输出,将前面命令的输出作为后面命令的输入
2. 特殊变量
位置变量:命令行传进的参数 $0 $1
3. Test
[] [[]]:
let (()):测试算术表达式
if [ "$a" \> "$b" ]:>需要转义
----- 进阶 -----
4 内部变量
$BASH
$BASH_ENV
$HOME
$HOSTNAME
$HOSTTYPE
$IFS 如何识别单词边界 默认为空格
$OSTYPE
$PPID
$PS1 主提示符
$PWD 工作目录
$UID
$# 命令行或者是位置参数的个数.
$* 所有的位置参数,被作为一个单词. 注意:"$*"必须被""引用
$@ 与$*同义,但是每个参数都是一个独立的""引用字串,这就意味着参数被完整地传递, 并没有被解释和扩展
$! 在后台运行的最后的工作的 PID(进程 ID)
$_ 之前执行的命令的最后一个参数.
$$ 脚本自身的进程 ID 这个变量经常用来构造一个"unique"的临时文件名
5. 操作字符串
字符串长度${#string}
提取子串 ${string:position:length}
子串削除${string#substring} 从$string 的左边截掉第一个匹配的$substring
${string##substring} 从$string 的左边截掉最后一个个匹配的$substring
${string%substring} 从$string 的右边截掉第一个匹配的$substring
${string%%substring} 从$string 的右边截掉最后一个匹配的$substring
子串替换 ${string/substring/replacement} 使用$replacement 来替换第一个匹配的$substring.
${string//substring/replacement} 使用$replacement 来替换所有匹配的$substring.
awk操作字符串 echo | awk '{ print substr("'"${String}"'",3,4)}'
for name in $(awk 'BEGIN{FS=":"}{print $1}' < "$PASSWORD_FILE" )
域分隔 = : ^^^^^^
打印出第一个域 ^^^^^^^^
从 password 文件中取得输入 ^^^^^^^^^^^^^^^^^
参数替换 ${parameter-default},${parameter:-default}
$RANDOMBash 的内部函数(并不是常量),这个函数将返回一个范围在 0 - 32767 之间的一个伪随机整数.