shell脚本变量
1、创建一个变量输出
声名变量:不需要你指定类型,不能使用关键字。
name=lsecho $name
2 另一种 引用的变量的方式是采用${}的方式
echo ${name}
3 本地变量
作用域:只在当前的进程中有效。
创建时只需要变量名=值 即可
清除变量: unset 变量名。再使用时=该变量时,该变量无效。
在本机1这个进程里面定义的变量,在本机2这个进程里是无法访问到的,如下图,输出变量names 为空值
作用域:只在当前的进程中有效。
4、环境变量
对于当前shell进程以及妻子进程有效,对其他shell进程无效。
定义:export name=""
环境变量分为:用户变量和系统变量
优点:采用环境变量的方式进行配置运行,这样子无论在系统那个目录下都可以执行脚本实现执行。
系统变量(对所有用户都有效),用户变量(对当前用户有效)
在/etc /profile文件尾部加入以下内容:
格式 :export my_shell = /目录(shell脚本存放目录)export PATH = $PATH : $my_shell
注意:PATH打大小写一定要大写。 不然生效之后linux基本命令如 ls\cd\mkdir\ 基本命令不能使用。
生效: source /etc/profile
这里在 /shellTest/ 目录下新建一个名为shell脚本
- 脚本设置执行权限
- 添加到系统变量文件中,添加到最底部即可(vi /etc/profile)
- 保存 即可(:wq )
- 生效 source /etc/profile 不报错说明成功,然后运行确认一下
- 当前目录下运行
- 在其他目录下运行
注意
在引用系统变量添加到PATH后的时候 "=" 左右两边不能出现空格,否则会出现报错
5、局部变量
java:局部在方法中调用,方法执行结束,变量就会消失
shell:一段shell代码中定义的变量。
定义:name='ls';
- 首先新建一个脚本文件,完之后设置执行权限
- 输出
在当前路经下可以输出一下这个局部变量测试一下
该变量为空,则说明局部变量只能在局部使用,使用完之后,变量回收
6、位置变量
./myshell.sh 在执行这个文件时,有时候需要我们传输一些参数进去
./myshell.sh arg1 arg2 arg3sh文件中,如何获取传递进去的参数(位置变量=$0,$1)
$0: 命令本身(脚本本身)$1:拿的是第一个参数$2
拿的是第二个参数
- 首先新建一个脚本,直接输出要传入的三个值
- 运行
sh文件中,如何获取传递进去的参数(位置变量=$0,$1)
$0: 命令本身(脚本本身)
$1:拿的是第一个参数
$2:拿的是第二个参数