1.shell中的变量
1.1变量的定义
变量即在程序运行过程中它的值是允许改变的量 变量是用一串固定的字符来标示不固定的值的一种方法
变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储 Script 运行时可更改的程序信息
在 shell中,变量是不能永久保存在系统中的,必须在文件中声明
1.1.1 在 shell 脚本中变量的种类
在 shell 中变量分为环境级变量,用户级变量,系统级变量
环境级变量只在当前 shell 中生效, shell 关闭变量丢失
用户级变量写在用户的骨文件中,只针对当前用户生效
系统级变量被写在系统的配置文件 /etc/profile 或者 /etc/profile.d/ 中,对于所有用户都生效
1.2 shell 脚本中变量的定义方法
环境级 export A=1
用户级 vim ~/bash_profile export A=1
系统级 vim /etc/profile export A=1
1.3 export
linux 中 export命令用于设置或显示环境变量。
在shell中执行程序时,shell会提供一组环境变量。export可新增,修改,删除环境变量,供后续完成的程序使用
1.4 变量名称的规范,字符的转译及变量的声明
变量名称中通常包含大小写字母,数字,下划线(不是必须)
字符的转译及变量的声明转译单个字符
“” 弱引用,批量转译 “” 中出现的字符,
‘’ 强引用,批量转译 ‘’ 中出现的字符
'' 与 ""两者的区别在于, "" 不能转译 "","`","!","$"
${} 变量声明
例如:
A=1
echo $Ab
echo ${A}b
1.5 变量值传递
$0 shell脚本本身的名称
$1脚本后的第一串字符串
$2脚本后的第二串字符串,以此类推
$#脚本后所跟字符串的个数
$* 脚本后跟的所有字符串,模式为“ 1 2 3 ”
$@脚本后跟的所有字符串,模式为“1”“2”“3”,为一个参数列表
$$ 脚本当前运行的进程ID号,即PID。
$? 最后一个命令执行的结束代码状态(返回值为0表示正确执行,返回其他表示有错误)
1.6 用 read 实现变量传递
read WESTOS
read -s WESTOS
read -p "input: " WESTOS
1.7 linux 系统中命令别名的设定
alias xie=‘vim’
vim ~/.bashrc
alias xie=‘vim’
vim /etc/bashrc
alias xie=‘vim’
unalias xie
1.8 利用命令执行结果设定变量
Hostname=$(command)
Hostname=command
1.9 $?
$? 是命令在执行完成之后产生的退出值
范围是 [0-255]
当 $?=0 时标示命令执行没有错误输出
这个值可以用 exit 命令执行 .
例如 exit 66
2.脚本中的函数
脚本中的函数 把一个复杂的语句块定义成一个字符串的方法
Host_Message()
{
read -p "Please input your action: " Action
[ "Action" == "exit" ] && exit 0
[ "Action" == "user"]&& echo You are $USER
[ "Action" == "hostname" ]&& echo $HOST
Host_Message #调用函数
}
Host_Message #调用函数
3. shell中常用的运算方式及运算符号
3.1 运算命令
(())用于整数运算
let 用于整数运算
expr 同上,功能较多
bc linux中的计算器,适合整数及小数运算
$[] 用于整数运算
3.2 运算方式及运算符号
运算符号
+ ,-
* ,/ ,%
**
++ --
< <= > >=
+= -= /= %= *=