shell 中的变量
shell 中的变量
学习目标
变量的定义
在 shell 脚本中如何定义变量
变量的转译
linux 系统中命令别名的设定
用户环境变量的设定
利用命令执行结果设定变量
脚本函数
变量的定义
变量即在程序运行过程中它的值是允许改变的量
变量是用一串固定的字符来标示不固定的值的一种方法
变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储 Script 运行时可更改的程序信息
在 shell 中变量是不能永久保存在系统中的,必须在文件中声明
在 shell 脚本中变量的种类
在 shell 中变量分为环境级变量,用户级变量,系统级变量
环境级变量只在当前 shell 中生效, shell 关闭变量丢失
用户级变量写在用户的骨文件中,只针对当前用户生效
系统级变量被写在系统的配置文件 /etc/profile 或者 /etc/profile.d/ 中,对于所有用户都生效
shell 脚本中变量的定义方法
环境级
export A=1
用户级
vim /.bash_profile
export A=1
系统级
vim /etc/profile
export A=1
环境级变量
用户级变量
用户级变量在切换用户和环境时失效su -student
-代表同时切换环境
系统级变量
在读取变量的时候后读取的会覆盖前面的级,默认顺序是系统级最后读取,但是变量修改过后哪个级修改过哪个级就是最后读取,source 文件
刷新相应修改过变量的级
添加PATH 可以直接以文件名字运行脚本
比如脚本放在了/mnt里可是现在所处/etc,添加一个PATH,系统就可以自己找到
添加一个用户级PATH
查看
变量名称的规范
变量名称中通常包含大小写字字母,数字,下划线(不是必须)
变量名称格式
WESTOS_LINUX
Westos_Linux
westoS_Linux
不能数字开头,只能加_
""不能引用`` 、 ! $
字符的转译及变量的声明
\
转译单个字符
“”
弱引用,批量转译 “” 中出现的字符,
‘’
强引用,批量转译 ‘’ 中出现的字符
‘’ 与 “” 两者的区别在于, “” 不能转译 “”,"`","!","$"
${}
变量声明
例如:
A=1
echo $Ab
echo ${A}b
变量值传递
$1 脚本后的第一串字符串
$2 脚本后的第二串字符串
$3 脚本后的第三串字符串
$# 脚本后所跟字符串的个数
$* 脚本后跟的所有字符串,模式为“ 1 2 3 ”
[email protected] 脚本后跟的所有字符串,模式为“ 1”“2”“3”
$ $ 当前运行程序id
测试
对比$*和 [email protected]
用 read 实现变量传递
交互
read WESTOS
read -s WESTOS
read -p "input: " WESTOS
-s是将输入隐藏
实验脚本
输入ip查看是否可以连接
使用read
linux 系统中命令别名的设定
alias xie=‘vim’
vim ~/.bashrc
alias xie=‘vim’
vim /etc/bashrc
alias xie=‘vim’
unalias xie
相关操作
环境级
用户级
系统级
shell级只针对当前shell
别名的删除
首先删除各文件的写入
查看unalias 别名
彻底清除
查看
利用命令执行结果设定变量
Hostname=$(hostname)
Hostname=`hostname后面也有点不过由于csdn问题无法正常显示
``通用
$只在shell
$?
$? 是命令在执行完成之后产生的退出值
范围是 [0-255]
当 $0=0 时标示命令执行没有错误输出
这个值可以用 exit 命令执行 .
例如 exit 66
脚本中的函数
脚本中的函数时把一个复杂的语句块定义成一个字符串的方法
函数脚本里的脚本
循环执行
脚本 输入exit或者EXIT退出
实验脚本
输入相应的字母进行相应的操作
用户的创建或者删除
第一部分
第二部分
第三部分
测试