shell变量
时间:2007-08-05 来源:cdy_0
1.变量设置
Va r i a b l e - n a m e = v a l u e 设置实际值到v a r i a b l e - n a m e
Va r i a b l e - n a m e + v a l u e 如果设置了v a r i a b l e - n a m e,则重设其值
Va r i a b l e - n a m e : ? v a l u e 如果未设置v a r i a b l e - n a m e,显示未定义用户错误信息
Va r i a b l e - n a m e ? v a l u e 如果未设置v a r i a b l e - n a m e,显示系统错误信息
Va r i a b l e - n a m e : = v a l u e 如果未设置v a r i a b l e - n a m e,设置其值
Va r i a b l e - n a m e : - v a l u e 同上,但是取值并不设置到v a r i a b l e - n a m e,可以被替换
2.使用u n s e t命令清除变量
$ unset variable-name
使用s e t命令显示所有本地定义的s h e l l变量
$ set
3.测试变量
如果设置了变量值,则使用它,如果未设置,则取新值来显示,而变量的实际内容没变化,没有赋新值.
$ color=bule
$ unset color
$ echo "the color is : ${color:-red}"
the color is :red
$ echo "color is : $color"
color is :
如果使用${color:=red},则color设置新值为red
4.执行下面的脚本如果直接回车,则使用默认值,如果输入新值则使用新值:
#!/bin/sh
echo "what time do you wish to start [15:00]:"
read time
echo "you start at ${time:=15:00}"
5.设置只读变量
$ NAME=chen
$ readonly NAME
查看所有只读变量
$ readonly
declare -r NAME="chen"
...
6.设置环境变量
传统上,所有环境变量均为大写。环境变量应用于用户进程前,必须用e x p o r t命令导出。
$ export AAA=ok
或:
$ AAA=ok;export AAA
用env查看所有环境变量
注意:
Brourne shell 有一些预留的环境变量名,这些变量名不能用作其他用途。通常在/etc/profile中建立这些嵌入的环境变量.
CDPATH执行cd命令时使用的搜索路径
HOME 用户的home目录
EXINIT变量保存使用v i编辑器时的初始化选项
LOGNAME此变量保存登录名
IFS 内部的域分割符,一般为空格符、制表符、或换行符
MAIL 指定特定文件(信箱)的路径,有UNIX邮件系统使用
PATH 寻找命令的搜索路径(同dos的config.sys的 path)
PS1 主命令提示符,默认是"$"
PS2 从命令提示符,默认是">" (当需要多行显示时)
SHELL变量保存缺省shell
TERM 使用终端类型
8.set命令
使用s e t命令- a选项,即set -a指明所有变量直接被导出
9.位置变量参数
要向一个s h e l l脚本传递信息,可以使用位置参数完成此功能
$0: 表示脚本名,$1: 表示第一个参数,$9: 表示第九个参数
10.特定s h e l l变量
$ # 传递到脚本的参数个数
$ * 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过9个
$ $ 脚本运行的当前进程I D号
$ ! 后台运行的最后一个进程的进程I D号
$ @ 与$ #相同,但是使用时加引号,并在引号中返回每个参数
$ - 显示s h e l l使用的当前选项,与s e t命令功能相同
$ ? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
echo $$ 显示当前进程号
Va r i a b l e - n a m e = v a l u e 设置实际值到v a r i a b l e - n a m e
Va r i a b l e - n a m e + v a l u e 如果设置了v a r i a b l e - n a m e,则重设其值
Va r i a b l e - n a m e : ? v a l u e 如果未设置v a r i a b l e - n a m e,显示未定义用户错误信息
Va r i a b l e - n a m e ? v a l u e 如果未设置v a r i a b l e - n a m e,显示系统错误信息
Va r i a b l e - n a m e : = v a l u e 如果未设置v a r i a b l e - n a m e,设置其值
Va r i a b l e - n a m e : - v a l u e 同上,但是取值并不设置到v a r i a b l e - n a m e,可以被替换
2.使用u n s e t命令清除变量
$ unset variable-name
使用s e t命令显示所有本地定义的s h e l l变量
$ set
3.测试变量
如果设置了变量值,则使用它,如果未设置,则取新值来显示,而变量的实际内容没变化,没有赋新值.
$ color=bule
$ unset color
$ echo "the color is : ${color:-red}"
the color is :red
$ echo "color is : $color"
color is :
如果使用${color:=red},则color设置新值为red
4.执行下面的脚本如果直接回车,则使用默认值,如果输入新值则使用新值:
#!/bin/sh
echo "what time do you wish to start [15:00]:"
read time
echo "you start at ${time:=15:00}"
5.设置只读变量
$ NAME=chen
$ readonly NAME
查看所有只读变量
$ readonly
declare -r NAME="chen"
...
6.设置环境变量
传统上,所有环境变量均为大写。环境变量应用于用户进程前,必须用e x p o r t命令导出。
$ export AAA=ok
或:
$ AAA=ok;export AAA
用env查看所有环境变量
注意:
- 一个shell中的环境变量(用export定义的)只在该shell或子shell中有效,该shell结束时,变量消失。
- 不用export定义的变量只对该shell有效,对子shell也是无效的。
- 执行脚本时是在一个子shell中运行的,脚本执行完后该子shell自动退出.
Brourne shell 有一些预留的环境变量名,这些变量名不能用作其他用途。通常在/etc/profile中建立这些嵌入的环境变量.
CDPATH执行cd命令时使用的搜索路径
HOME 用户的home目录
EXINIT变量保存使用v i编辑器时的初始化选项
LOGNAME此变量保存登录名
IFS 内部的域分割符,一般为空格符、制表符、或换行符
MAIL 指定特定文件(信箱)的路径,有UNIX邮件系统使用
PATH 寻找命令的搜索路径(同dos的config.sys的 path)
PS1 主命令提示符,默认是"$"
PS2 从命令提示符,默认是">" (当需要多行显示时)
SHELL变量保存缺省shell
TERM 使用终端类型
8.set命令
使用s e t命令- a选项,即set -a指明所有变量直接被导出
9.位置变量参数
要向一个s h e l l脚本传递信息,可以使用位置参数完成此功能
$0: 表示脚本名,$1: 表示第一个参数,$9: 表示第九个参数
10.特定s h e l l变量
$ # 传递到脚本的参数个数
$ * 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过9个
$ $ 脚本运行的当前进程I D号
$ ! 后台运行的最后一个进程的进程I D号
$ @ 与$ #相同,但是使用时加引号,并在引号中返回每个参数
$ - 显示s h e l l使用的当前选项,与s e t命令功能相同
$ ? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
echo $$ 显示当前进程号
相关阅读 更多 +