1.什么是变量?
变量 在程序运行过程中值是允许改变的量。
变量可以保存程序运行时用户输入的数据、特定运算的结果以及要在窗体上显示的一段数据等。简而言之,变量是用于跟踪几乎所有类型信息的简单工具。
变量是用一串固定的字符来表示不固定值的一种方法
变量是一种使用方便的占位符,用于引用计算机内存地址.该地址可以存储Script运行时可更改的程序信息。使用变量并不需要了解变量在计算机内存中的地址,只要通过变量名引用变量就可以查看或更改变量的值。
变量:是内存地址的别名,是一个地址符($USER)
在shell中变量是不能永久保存在系统中的,必须在文件中声明
2.变量的种类及变量定义方法
(1)环境级变量:只在当前shell中生效,开启新的shell不生效,当前shell关闭后变量会丢失
定义方法:export a=8
export
—声明,共享
(2)用户级变量:写在用户家目录下的.bash_profile文件中,只针对当前用户生效
定义方法:
vim ~/.bash_profile
export b=9
source
—不是刷新,而是读取添加
(3)系统级变量:写在系统的配置文件/etc/profile 或 /etc/profile.d 中,对所有用户生效
定义方法:
vim /etc/profile
export c=6
env 命令可查看系统中已定义的变量
切换用户时,使用su - username
与 su username
的区别
su -:加载/etc/bashrc文件,也加载/etc/profile文件,加载系统中的环境变量
su:只加载/etc/bashrc文件,不会加载/etc/profile文件,即不会加载系统的环境变量
3.变量名称规范
变量名称中通常包含大小写字母[ a-z/A-Z ],数字[ 0-9 ],下划线[ _ ](不是必须的)
4.字符的转译及变量的声明
字符 | 说明 |
---|---|
\ | 转义单个字符 |
"" | 弱引用,批量转义“”中出现的字符 |
'' | 强引用,批量转义‘’中出现的字符 |
${} | 变量声明 |
''
与""
的区别:" " 不能转译 \,`,!,$,而 ‘ ’ 可以
5.变量值传递
字符 | 说明 |
---|---|
$0 | 脚本名 |
$1 | 脚本后的第一串字符串 |
$2 | 脚本后的第二串字符串 |
$3 | 脚本后的第三串字符串 |
$# | 脚本后所跟字符串的个数 |
$* | 脚本后跟的所有字符串,模式为“1 2 3” |
$@ | 脚本后跟的所有字符串,模式为“1” “2” “3” |
$*
与$@
的区别如下:
6.利用命令执行结果设定变量
(1)$() = ``
hostname=$(hostname)
等效于
hostname=`hostanme`
(2)$?
$? 是命令在执行完后产生的退出值,范围是[ 0-255 ]
当 $?=0
时表示命令执行没有错误输出
$?
的值可以用 exit 命令执行,例如 exit 97
7.read 实现变量传递
命令 | 说明 |
---|---|
read WORD | 将输入赋给变量WORD |
read -s WORD1 | 将输入赋给变量WORD1,不回显 |
read -p "Please Input : " WORD2 | 显示Please Input : 并将输入赋给变量WORD2 |
8.Linux系统中命令别名的设定
alias命令
(1)环境级
alias xie='vim'
alias
xie /etc/passwd
bash /*开启一个新环境*/
xie /etc/passwd /*不能识别xie命令*/
exit
(2)用户级
vim /root/.bashrc
alias xie='vim'
source /root/.bashrc
xie /*进入vim界面*/
su - student
xie /*不能识别xie命令*/
source 不是刷新,而是读取文件中添加的信息,若文件中删除了信息,则不需要使用source
命令
(3)系统级
vim /etc/bashrc
alias xie='vim'
xie
su - student
xie /*可识别xie命令*/
(4)取消命令别名的设定
vim /etc/bashrc /*系统级*/
#alias xie='vim'
vim /root/.bashrc /*用户级*/
#alias xie='vim'
unalias xie /*环境级*/
9.脚本中的函数
(1)函数的定义
函数 是一组命令,这些命令被赋予一个名称,该名称的作用类似于该组命令的句柄。 要执行函数中定义的这组命令,只需使用提供的名称调用该组命令即可。
脚本中的函数是把一个复杂的语句块定义成一个字符串的方法
函数:名称+动作
(2)函数的优点
<1>缩减脚本长度
<2>使脚本可循环运行
<3>提高程序的可读性和重用性
(3)函数的定义
方法一:
function_name ()
{
statement1
statement2
....
statementn
}
方法二:
function function_name()
{
statement1
statement2
....
statementn
}
(4)函数的调用
1>调用方法
用户就可以通过函数名来调用该函数。在Shell中,函数调用的基本语法如下:
function_name parm1 parm2