- 账号邮件信箱默认以mail这个变量进行访问。当用户dmtsai登录,他便会取得MAIL这个变量,而这个变量内容其实是/var/spool/mail/dmtsai。如果vbird登录,则MAIL变量的内容就是/var/spool/mail/vbird。
- 而我们使用命令mail读取邮箱时,这个程序可以直接读取mail这个变量的内容,就能够自动分辨出属于自己的信箱了。
- 注意:MAIL是变量名称,mail是命令。
- mail命令通过MAIL变量进行读取。
- 编写较为大型的shell script时,可以在script最前面定义某变量表示什么内容,当需要进行修改时,只需要修改变量即可。
- 示例:
#echo $variable
#echo
$PATH #echo $ {PATH} - 利用echo可以读出变量内容,方法如上示例。其他功能,man echo
1.变量与变量内容以“=”连接,如示:
- myname=VBird
2.等号两边不能直接接空格符
3.变量名称只能是英文字母与数字,但开头字符不能为数字
4.变量内容若有空格符,可以使用双引号“"”或者单引号”'“将变量内容结合起来
- 双引号内特殊字符如$等可以保有原本的特性,如下所示:
若"var="lang is $LANG"",则"echo $var"可得"lang is en_US" - 单引号内的特殊字符则仅为纯文本,如下所示:
若"var='lang is $LANG'",则"echo $var"可得"lang is '$LANG"
5.可以用*转义字符""*将特殊字符(如ENTER、$、\、空格符、!等)变成一般字符
6.在一串命令中还需要通过其他的命令提供的信息,可以使用反单引号(数字1左边的那个按键)“
命令`”或“$(命令)”。例如:
- “version=$(uname-r)"再"echo $version"可得“内核版本号”
7.若该变量为了增加变量内容,则可用"$变量名称"累加内容,如示:
- "PATH="$PATH":/home/bin"
8.若该变量需要在其他子进程执行,则需要export来使变量变成环境变量:
- "export PATH"
9.通常大写字符为系统默认变量,自行设置变量可以使用小写字符,方便判断
10.取消变量的方法为使用"unset 变量名称",例如取消myname的设置:
- "unset mtname"
语法:export 变量名称 如果之输入export,则输出所有的环境变量。
CVS_RSH (类Unix系统) 该选项可用于 ext 方式中指明 cvs 客户端寻找远端 shell 的路径,用作连接 cvs 服务器和以更高的优先权覆盖 $CVS_RSH 环境变量中指定的路径。
若上个命令执行成功,值为0,否则为非零值。
- \u:当前用户账户名称。
- \w(小写):完整目录名称。
- 其他请自行man
- locale命令可以列出语系变量及其值。
- locale -a命令列出系统已经安装的可支持语系。
- 系统语系定义在/etc/default/locale
read [-pt] variable
-p:后面可以接提示符
-t:后面可以接等待的秒数
* 范例一:
#read atest
This is a test此时光标会等待输入
#echo $atest
This is a test刚才输入的数据变成了变量内容
* 范例二:
#read -p "Please keyin your name:" -t 30 named
Please keyin your name: VBird Tsai会有提示符提醒输入
#echo $named
VBird Tsai输入的数据变成了变量内容
- 语法:declare [-aixr] variable
-a:数组(arry)
-i:整数(integer)
-x:环境变量
-r:将变量设为readonly,变量内容不可更改
- 变量内容默认为字符串。如1+2就是一个字符串,不是计算式。
- bash数值运算默认仅能在整数内进行。
自行google