bash
**** 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关键字变量
| 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特殊字符
| 换行符 | 启动命令执行 |
| ; | 分隔字符 |
| () | 通过子shell,或者标示函数执行命令分组 |
| & | 在后台执行命令 |
| | | 将前一个命令的输出发送给其后面的命令(管道) |
| > | 重定向标准输出 |
| >> | 重定向标准输出(在后面追加) |
| < | 重定向标准输入 |
| << | Here文档 |
| * | 模糊文件引用中的0个或多个字符组成的串 |
| ? | 模糊文件引用中任何单个字符 |
| \ | 引用后面的字符 |
| ' | 引用字符串,阻止所有替换 |
| " | 引用字符串,只允许变量替换和命令替换 |
| `...` | 执行命令替换 |
| [] | 字符范围。用作正则表达式的一部分,描述一个匹配的字符范围。作为test用途的中括号内不能使用正则。比如:[0-9]、[a-z]等 |
| $ | 引用某个变量 |
| .(内置句点 source) | 执行命令(只在行首) |
| # | 开始一行注释 |
| {} | 用来封装函数体 |
| :() | 返回true |
| && | 与 |
| || | 或 |
| ! | 非 |
| $()【tcsh中没有】 | 执行命令替换(优先形式) |
| [] | 计算算术表达式的值 |
here文档
Here文档是一种具有特殊功能的代码块,是I/O重定向的一种特例。Here文档采用I/O重定向的方法,把一系列需要从键盘输入的命令,模拟人工输入的方式,一行一行地交给交互式应用程序或命令。其具体的语法格式如下:
program<<limitstring
command1
command2
command3
.......
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"必须位于单独另起一行的起始位置。

浙公网安备 33010602011771号