shell中的变量
一、变量的定义:变量即在程序运行过程中它的值时允许改变的量;
变量是用一串固定的字符来表示不固定的值的一种方法;
变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储Script运行时可更改的程序信息;
在shell中变量是不能永久保存在系统中的,必须在文件中声明。
二、在shell脚本中变量的种类
在shell中变量分为环境级变量、用户级变量、系统级变量;
环境级变量只在当前shell中生效,shell关闭变量消失;
用户级变量写在用户的主文件中,只针对当前用户失效;
系统级变量被写在系统的配置文件/etc/profile或/etc/profile.d/中,对所有用户都生效。
三、shell脚本中变量的定义方法
1、环境级变量,只在当前shell中生效,export WESTOS=1
2、用户级变量,只针对当前用户生效,
vim ~/.bash_profile在文件里写入export WESTOS=1;
source重新载入文件(只能载入增加)
3、系统级变量,对所有用户都生效;
vim /etc/profile在配置文件里同样写入export WESTOS=1
4、如何实现让本来在/mnt下的脚本在任何环境下都可以直接执行
像上面ls在任何路径下都可以执行,这是因为ls的执行路径写在了配置文件里,$PATH可以查看;
下面我们将/mnt也加入主文件里,此时在当前用户,何种环境都可以执行/mnt下都脚本,不用写绝对路径
四、字符的转译
1、\转移一个字符
2、" "弱引用,批量转译“ ”中出现的字符;
\ ` $(单独$可以转译,跟东西就不转译) ! 不能转译
3、${}变量声明
4、‘ ’强引用
5、``优先执行里面的内容,``与$()一样,但是区别是``不能连用
五、变量值传递
$1 脚本后的第一串字符
$2 脚本后的第二串字符
$3 脚本后的第三串字符
$# 脚本后所跟字符的个数
$* 脚本后的所有字符串(一个个体)
$@ 脚本后的所有字符串(一个整体)
$* 脚本后的所有字符串(一个个体)
$@ 脚本后的所有字符串(一个整体)
六、用read实现变量传递
-p表示显示
-s表示加密
测试:
1)ping ip 通则显示up;不通显示down
c1表示连接一次
w1表示时间1s
&>/dev/null 输出扔掉
2)创建用户
七、Linux系统中命令别名的设定
1、alias 查看命令的别名
例如:ls其实=ls --color
测试:
下面我们将vim命令赋予别名xie;即输入xie即可进入vim编辑
1)临时设定 编辑 ~/.bashrc
source 载入即可在当前用户实现
2)永久设定,在/etc/bashrc里同样编辑如下
source载入可以alias查看
3)删除unalias命令
八、利用执行结果设定变量
$?表示命令执行完后的退出值,范围是[0~255];0表示没有错误的输出;具体每个数字代表的含义可以在网上查找
这个值可以用exit命令执行
九、脚本中的函数
脚本中函数是把一个负载的语句块定义成一串字符的方法
格式Create()
{
...
}
Create
举例如下:用户的创建函数
Create名字自定义
下面表示创建用户,当输入exit时退出,否则一直执行这个创建用户的函数脚本