shell脚本中的变量
在 shell 中变量分为环境级变量,用户级变量,系统级变量
环境级变量只在当前shell 中生效, shell关闭变量丢失
用户级变量写在用户的骨文件中,只针对当前用户生效
系统级变量被写在系统的配置文件 /etc/profile 或者 /etc/profile.d/ 中,对于所有用户都生效
环境级变量
用户级变量
系统级变量
系统级变量/etc/bashrc和/etc/bash_profile的区别
系统级变量设定一般写在/etc/bashrc /*/etc/.bashrc与/etc/profile的区别是写在/etc/profile下可能不识别*/
例如:
在系统级变量.bashrc里设置变量b的值,在系统级变量.bashprofile里设置变量a的值
su student
在/etc/profile下设定的变量不生效,但在/etc/bashrc下设定的变量生效
不过,su - student都生效
环境变量的PATH路径
如果修改错误,会导致一些基本的命令如:ls,vim不能直接使用,这是因为命令的相对路径发生了改变,我们可以用绝对路径执行。
环境变量的命令行提示符
变量名称的规范
变量名称中通常包含大小写字母,数字,下划线(不是必须),但变量名称不能以数字开头
例如:
常用变量名称格式
WESTOS_LINUX
Westos_Linux
westoS_Linux
字符的转译及变量的声明
\ 转译单个字符
"" 弱引用,批量转义 " " 中出现的字符
' ' 强引用,批量转义 ' '中出现的字符
${} 变量声明
' ' 与 " " 两者的区别在于 " " 不能转译" \ “,” ` “,” ! “,” $ "
例:
变量值传递
编写一个脚本进行实验验证:
$ @和$ *的区别:
用 read 实现变量传递
应用实例:
判断某一主机的网络状态,能否ping通
-s 加密传递变量
退出值 $?
$?是命令在执行完成之后产生的退出值 范围是【0-255】
退出值为0表示正确,不为0表示错误
指定退出值,exit后面加的数字就是我的退出值
为什么要指定退出值?
因为有可能我脚本执行是正确的,但输出是error,退出值应该显示错误,但如果我不设定退出值,退出值会显示0,与实际情况不符