**** PS1[prompt[提示] string 1] 符号正则表达式
\$ | 若是以root身份运行的话,就显示为#,不然就是$ |
\w | 工做目录的路径名 |
\W | 工做目录的基名 |
\! | 当前事件(历史)编号 |
\d | 按照“工做日/月/日期”格式显示的日期 |
\h | 计算机的主机名,不包括域名 |
\H | 计算机全名,包括域名 |
\u | 当前用户的用户名 |
\@ | 按照12小时制,AM/PM格式显示的当前时间值 |
\T | 按照12小时制,HH:MM:SS格式显示当前时间 |
\A | 按照24小时制,HH:MM格式显示当前时间 |
\t | 按照24小时制,HH:MM:SS格式显示当前时间 |
*** bash关键字变量shell
BASH_ENV | 用于非交互式shell的初始化文件的路径名 |
CDPATH | cd命令的搜索路径 |
COLUMNS | select命令使用的显示宽度 |
FCEDIT | fc默认使用的编辑器名称 |
HISTFILE | 保存历史列表文件的路径名(默认为~/.bash_history) |
HISTFILESIZE | 保存在HISTFILE中的最大项数 |
HOME | 用户主目录的路径名,用做cd命令的默认参数或用在代字符(~)表达式中 |
IFS(internal field separator) | 内部字段分隔符,用于分词 |
INPUTRC | readline 初始化文件的路径名(默认为~/.inputrc) |
LANG | 没有用LC_*变量特别设置时的区域目录 |
LC_* | 指定了区域目录,包括LC_COLLATE、LC_CTYPE、LC_MESSAGES和LC_NUMBERIC的一组变量,使用内置命令locale能够显示值的列表 |
LINES | select使用的显示高度 |
保存用户邮件的文件的路径名 | |
MAILCHECK | 以秒为单位定义了bash检查邮件的频率 |
MAILPATH | bash检查邮件文件的路径名列表,名字之间用冒号隔开 |
PATH | bash查找命令的目录路径名列表,名字之间用冒号隔开 |
PROMPT_COMMAND | bash在显示主提示符以前要执行的命令 |
PS1(prompt string 1) | 提示符1,主提示符(默认为 "\s-\v\$ ") |
PS2(prompt string 2) | 提示符2,主提示符(默认为 "> ") |
PS3 | select 发出的提示符 |
PS4 | bash调试符 |
REPLY | 保存read接受的行,还用于select |
**** shell特殊字符vim
换行符 | 启动命令执行 |
; | 分隔字符 |
() | 经过子shell,或者标示函数执行命令分组 |
& | 在后台执行命令 |
| | 将前一个命令的输出发送给其后面的命令(管道) |
> | 重定向标准输出 |
>> | 重定向标准输出(在后面追加) |
< | 重定向标准输入 |
<< | Here文档 |
* | 模糊文件引用中的0个或多个字符组成的串 |
? | 模糊文件引用中任何单个字符 |
\ | 引用后面的字符 |
' | 引用字符串,阻止全部替换 |
" | 引用字符串,只容许变量替换和命令替换 |
`...` | 执行命令替换 |
[] | 字符范围。用做正则表达式的一部分,描述一个匹配的字符范围。做为test用途的中括号内不能使用正则。好比:[0-9]、[a-z]等 |
$ | 引用某个变量 |
.(内置句点 source) | 执行命令(只在行首) |
# | 开始一行注释 |
{} | 用来封装函数体 |
:() | 返回true |
&& | 与 |
|| | 或 |
! | 非 |
$()【tcsh中没有】 | 执行命令替换(优先形式) |
[] | 计算算术表达式的值 |
Here文档是一种具备特殊功能的代码块,是I/O重定向的一种特例。Here文档采用I/O重定向的方法,把一系列须要从键盘输入的命令,模拟人工输入的方式,一行一行地交给交互式应用程序或命令。其具体的语法格式以下:bash
program<<limitstring编辑器
command1函数
command2.net
command3调试
.......blog
commandN事件
limitString
其中,特殊的I/O重定向符号“<<”与“LimitString ”是here文档的开始,单独另起一行的第二个Limitstring 表示here文档的结束。
下面的例子说明怎样利用here文档运行vim编辑器,模拟vim编辑器的交互过程,输入“i”命令和ESC键,插入两行数据,最后把编辑器的数据内容写入特定的文件。
#!/bin/bash // emnvim
if [ -z "$1" ]
then
echo "Usage :`basename $0` filename"
exit 1
fi
vim $1<<EOF
i
I cannot choose the best.
the best choosr me.
^[
zz
EOF
exit 0
使用下列命令运行shell 脚本时,便可获得一个自动编辑的文本文件
$emnvim fname
$cat fname
I cannot choose the best.
the best choose me.
注意:here文档要求其中的输入数据,尤为是做为结束标志的字符串分界符"LimitString"必须位于单独另起一行的起始位置。