变量和运算符--shell编程笔记2
2011-02-19 13:59
381 查看
本地变量 环境变量 变量替换 位置变量 标准shell变量 特殊变量 影响变量的命令 引号 运算符 表达式替换 运算符的优先级
1、本地变量:本地变量在用户现在的shell生命期的脚本中使用
Variable-name=value
Set显示本地所有的变量
Readonly variable-name 把变量改为只读的
例如:#LOCALTEST=“test” //定义变量
#echo ${LOCALTEST} //大括号可以不要
test
#readonly LOCALTEST //变为只读的
# LOCALTEST=“test4” //然后给LOCALTEST变量再赋值,会提示以下信息
bash:LOCALTEST:readonly variable
#readonly //查看本地的所有只读变量,也可以加上-p参数查看
2、环境变量:环境变量用于所有用户进程(经常成为子进程);登录进程成为父进程。Shell中执行的用户进程均成为子进程。不像本地变量(只用于现在的shell)环境变量可用于所有子进程,这包括编辑器、脚本和应用。
$HOME/.bash_profile(/etc/profile)
export //设置环境变量
env //查看环境变量,也可以直接用export来查看
例如:#export CHINA=”redhat” //定义环境变量CHINA
#env //查看上面定义的环境变量
#readonly CHINA //也可以设置为只读的
3、变量替换:用变量的值替换它的名字
echo
在变量名前加$,使用echo命令可以显示单个变量取值
例如:#testvar=”this is a test” //定义testvar变量
#echo ${testvar} //显示变量,大括号可以不要
This is a test
变量替换的方式:
4、变量清楚
unset unset variable-name
例如:#testvar=”this is a test”
#echo ${testvar}
This is a test
#unset testvar //清楚变量
#echo ${testvar} //此时是不会显示任何信息的
#readonly testvar2 //把testvar2改为只读的
#unset testvar2 //此时是删除不了的,会返回错误信息
bash :unset:testvar2:cannot unset:readonly variable
5、位置变量:运行的程序后面要带一些参数,这些参数就是程序当中要用到的用位置标示的,这样的变量我们称为位置变量。在shell中允许的位置变量有十个:
$0,$1,$2………$9 //超过十个的话要用其它方式在程序中读出来,然后使用它,这些位置变量的表示为:假设$1的参数为A,$2的参数为B等等。
向脚本中使用位置参数
向系统命令传递参数
6、标准变量:bash默认建立了一些标准环境变量,可以在shell中自动解析,也可以在/etc/profile中定义。
EXINIT //初始化定义vi的一些设置参数
HOME //主目录 #echo $HOME
IFS //字段、域之间的分隔,如空格,冒号之类的
LOGNAME //登录名
MAIL //当前的用户的存储邮箱
MAILCHECK //检查是否有新的邮件
MAILPATH //多个邮箱的时候的路径
TERM //终端的类型vt100
PATH //可执行的文件的寻找路径
TZ //表示时区
PS1 //终端的提示符:[root@server root]#
PS 2 //要运行多行命令的时候的“>”符号
PWD // 表示当前的目录是什么
SHELL //当前运行的shell是哪一个shell,如/bin/bash
MANPATH //帮助文档存放的路径
TERMINFO //TERM表示的终端类型到底是哪个文件的信息
7、特殊变量
$# //传递到脚本的参数个数
$* //以一个字符串显示所有向脚本传递的参数,与位置变量不同,此选项参数可以超过9个
$$ //脚本运行的当前进程ID号
$! //后台运行的最后一个进程的进程ID号
$@ //使用时加引号,并在引号中返回每个参数的列表
$- //显示shell使用的当前选项,与set命令功能相同
$? //显示最后命令的退出状态,0表示没有错误,其他任何值都表明有错误
8、影响变量的命令
declare
--设置或显示变量
-- -f只显示函数名
-- -r 创建只读变量(delare和typeset)
-- -x创建转出变量
-- -i 创建整数变量
--使用+替代-,可以颠倒选项的含义
export
--用于创建传给子shell的变量
-- --表明选项结束,所有后续参数都是实参
-- -f表明在“名-值”对中的名字是函数名
-- -n把全局变量转换成局部变量。换句话说,命令的变量不再传给shell
-- -p显示全局变量列表
readonly
--用于显示或设置只读变量
-- --表明选项结束
-- -f创建只读变量
set 设置或重设各种shell
shift
用于移动位置变量,调整位置变量,使$3的值赋予$2,$2的值赋予$1。
typeset 用于显示或者设置变量,是declare的同义词
unset 用于取消变量的定义
n --表明选项结束
n -f删除只读变量,但不能从shell环境中删除指定的变量和函数。如PATH,PS1,PS2,PPID,UID,EUID等的设置。
9、引号:引号的必要性,双引号,单引号,反引号,反斜杠
引号的必要性:变量和替换操作,在脚本中执行变量替换时最容易犯得一个错误就是引用错误。
#echo ert *
#echo “ert *” //比较一下不同
10、运算符
运算符是对计算机发的指令
运算对象
--数字、字符(字面值)
--变量
--表达式
表达式:运算符和运算对象的组合体
1、本地变量:本地变量在用户现在的shell生命期的脚本中使用
Variable-name=value
Set显示本地所有的变量
Readonly variable-name 把变量改为只读的
例如:#LOCALTEST=“test” //定义变量
#echo ${LOCALTEST} //大括号可以不要
test
#readonly LOCALTEST //变为只读的
# LOCALTEST=“test4” //然后给LOCALTEST变量再赋值,会提示以下信息
bash:LOCALTEST:readonly variable
#readonly //查看本地的所有只读变量,也可以加上-p参数查看
2、环境变量:环境变量用于所有用户进程(经常成为子进程);登录进程成为父进程。Shell中执行的用户进程均成为子进程。不像本地变量(只用于现在的shell)环境变量可用于所有子进程,这包括编辑器、脚本和应用。
$HOME/.bash_profile(/etc/profile)
export //设置环境变量
env //查看环境变量,也可以直接用export来查看
例如:#export CHINA=”redhat” //定义环境变量CHINA
#env //查看上面定义的环境变量
#readonly CHINA //也可以设置为只读的
3、变量替换:用变量的值替换它的名字
echo
在变量名前加$,使用echo命令可以显示单个变量取值
例如:#testvar=”this is a test” //定义testvar变量
#echo ${testvar} //显示变量,大括号可以不要
This is a test
变量替换的方式:
${variable name} | 显示实际值到variable name |
${variable name:+value} | 如果设置了variable name,则显示其值value,否则为空。 |
${variable name:?value} | 如果未设置variable name,显示用户定义错误信息value |
${variable name:-value} | 如果未设置variable name,则显示其值value |
${variable name:=value} | 如果未设置variable name,设置其值,并显示 |
unset unset variable-name
例如:#testvar=”this is a test”
#echo ${testvar}
This is a test
#unset testvar //清楚变量
#echo ${testvar} //此时是不会显示任何信息的
#readonly testvar2 //把testvar2改为只读的
#unset testvar2 //此时是删除不了的,会返回错误信息
bash :unset:testvar2:cannot unset:readonly variable
5、位置变量:运行的程序后面要带一些参数,这些参数就是程序当中要用到的用位置标示的,这样的变量我们称为位置变量。在shell中允许的位置变量有十个:
$0,$1,$2………$9 //超过十个的话要用其它方式在程序中读出来,然后使用它,这些位置变量的表示为:假设$1的参数为A,$2的参数为B等等。
$0 | $1 | $2 | $3 | $4 | $5 | $6 | $7 | $8 | $9 |
脚本名字 | A | B | C | D | E | F |
向系统命令传递参数
6、标准变量:bash默认建立了一些标准环境变量,可以在shell中自动解析,也可以在/etc/profile中定义。
EXINIT //初始化定义vi的一些设置参数
HOME //主目录 #echo $HOME
IFS //字段、域之间的分隔,如空格,冒号之类的
LOGNAME //登录名
MAIL //当前的用户的存储邮箱
MAILCHECK //检查是否有新的邮件
MAILPATH //多个邮箱的时候的路径
TERM //终端的类型vt100
PATH //可执行的文件的寻找路径
TZ //表示时区
PS1 //终端的提示符:[root@server root]#
PS 2 //要运行多行命令的时候的“>”符号
PWD // 表示当前的目录是什么
SHELL //当前运行的shell是哪一个shell,如/bin/bash
MANPATH //帮助文档存放的路径
TERMINFO //TERM表示的终端类型到底是哪个文件的信息
7、特殊变量
$# //传递到脚本的参数个数
$* //以一个字符串显示所有向脚本传递的参数,与位置变量不同,此选项参数可以超过9个
$$ //脚本运行的当前进程ID号
$! //后台运行的最后一个进程的进程ID号
$@ //使用时加引号,并在引号中返回每个参数的列表
$- //显示shell使用的当前选项,与set命令功能相同
$? //显示最后命令的退出状态,0表示没有错误,其他任何值都表明有错误
8、影响变量的命令
declare
--设置或显示变量
-- -f只显示函数名
-- -r 创建只读变量(delare和typeset)
-- -x创建转出变量
-- -i 创建整数变量
--使用+替代-,可以颠倒选项的含义
export
--用于创建传给子shell的变量
-- --表明选项结束,所有后续参数都是实参
-- -f表明在“名-值”对中的名字是函数名
-- -n把全局变量转换成局部变量。换句话说,命令的变量不再传给shell
-- -p显示全局变量列表
readonly
--用于显示或设置只读变量
-- --表明选项结束
-- -f创建只读变量
set 设置或重设各种shell
shift
用于移动位置变量,调整位置变量,使$3的值赋予$2,$2的值赋予$1。
typeset 用于显示或者设置变量,是declare的同义词
unset 用于取消变量的定义
n --表明选项结束
n -f删除只读变量,但不能从shell环境中删除指定的变量和函数。如PATH,PS1,PS2,PPID,UID,EUID等的设置。
9、引号:引号的必要性,双引号,单引号,反引号,反斜杠
引号的必要性:变量和替换操作,在脚本中执行变量替换时最容易犯得一个错误就是引用错误。
#echo ert *
#echo “ert *” //比较一下不同
10、运算符
运算符是对计算机发的指令
运算对象
--数字、字符(字面值)
--变量
--表达式
表达式:运算符和运算对象的组合体
相关文章推荐
- Java笔记1 Java编程基础<1>标示符、变量、个别运算符
- shell编程学习笔记4--环境变量配置文件
- 变量、数据类型和运算符_笔记(2)
- swift学习笔记1-常量变量、运算符、类型转换
- (原创)c#学习笔记03--变量和表达式04--表达式03--运算符的优先级
- PHP菜鸟学习之路-php学习笔记变量与运算符练习
- shell编程学习笔记3--声明数据类型,运算方法,运算符
- Python笔记:打印,变量类型,类型转换,运算符
- 【学习笔记】PHP基础-变量and运算符
- 变量 类型 运算符 笔记整理02
- Shell编程笔记--变量的定义
- iOS笔记:第二篇 C语言scanf函数、变量和运算符
- Python学习笔记(二)-- 变量类型 + 运算符
- 黑马程序员_JAVA笔记02——标识符、进制、变量、运算符、if和switch语句
- 【学习笔记】JavaScript——变量、常量、保留字、运算符与表达式、语句
- Python入门学习笔记1(变量、运算符、数据类型I)
- *Shell编程基础教程2--变量和运算符
- Shell编程笔记--变量的定义
- G笔记_Java基础(变量、基本类型、运算符和表达式-1)
- 黑马程序员_java基础学习笔记01_变量,数据类型,运算符