linux学习(七)Shell编程中的变量
@(shell编程)
shell编程的建立
[root@localhost ~]# vi mytest
就建立了一个名叫mytest的文件
vim编辑器没有接触过,你就需要学习一下啊,这里介绍几个简单的命令:
- 单点i进入插入模式
- ctrl+c退出插入模式
- 在浏览模式按下“:”,再输入q是不保存退出、wq是保存并退出
shell的hello world!
echo 你想要输出的内容
执行脚本的方法:
sh 你创建的shell脚本的名字
bash 你创建的shell脚本的名字
==打开一个子shell去读取,不需要有执行权限==
或者
source 你创建的shell脚本的名字
==区别:在当前shell内执行、且不需要有执行权限,source可以替换成.==
. 你创建的shell脚本的名字
或者
./你创建的shell脚本的名字
==打开一个子shell,但是需要有执行权限==
shell的环境变量
相当于window系统下的环境变量
|环境变量|说明|
|:---:|:---:|
|path|指定命令的搜索路径,以冒号为分隔符
|home|指定用户的主工作目录
|histsize|命令历史文件
|logname|当前的登录名
|hostname|主机的名称
|shell|shell的全路径名
|term|用户控制终端的类型
|pwd|当前工作目录的全称
|ps1|命令基本提示符,root用户是“#”,对于普通用户是“"$"
环境变量一般都大写,系统启动以后自动加载,可写的环境变量用户可以随时修改
使用和设置环境变量
|命令|说明|
|:---:|:---:|
|echo|显示某个环境变量值
|export|设置一个新的环境变量
|env|显示所有环境变量
|set|显示本地定义的shell变量
|unset|消除环境变量
|readonly|设置只读环境变量
如图设置pi环境变量为3.1415926
env命令查看
shell的系统变量
shell的系统变量主要在对参数和命令返回值进行判断时使用,包括脚本和函数的参数,以及脚本和函数的返回值。
常用系统变量
|系统变量|说明|
|:---:|:---:|
|$0|shell程序名
|$1-$9|第1~9个命令行参数的值
|$*|传递给脚本的所有参数,全部参数合为一个字符串
|$ #|传递给脚本的参数个数
|$ $|当前进程的id
|$ ?|最后执行一条命令的退出状态,返回值为0则成功,非0则失败
|$ !|在后台运行最后一个进程的id
命令行参数的个数大于9的个时,可以使用shift指令将参数左移,获取第10个以后的参数。也可以用shift n将所有参数一次性左移n位
用户自定义变量
用户自定义变量在shell脚本中使用,他们拥有临时的存储空间。在程序执行中值可以改变,这些变量可以设置为只读。
在程序中使用变量值的时候,要在变量名前面加一个字符“$"。这个符号告诉shell要取出变量的值(”==“两边不能有空格)
上图输出加了$的值为这个变量的值,不加就直接输出了字符串
==当复制给变量含有空格、制表符、或者换行符时,要用双引号把这个字符串引起来==
当然赋值也可以像下图所示: