Shell之变量

78 篇文章 3 订阅
70 篇文章 2 订阅

Shell之变量

  • 什么是变量

变量即在程序运行过程中它的值是允许改变的量
变量是用一种固定的字符来表示不固定的值的一种方法
变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储script运行是可更改的程序信息
在shell中变量是不能永久保存杂其系统中的,必须在文件中声明

  • 变量的种类

环境级变量:只在当前shell中生效,shell关闭变量丢失
用户级变量:被写在用户的骨文件/home/.bash_profile中,只针对当前用户生效
系统级变量:被写在系统的配置文件/etc/profile中,对所有用户都生效
PATH 环境变量:用来指定系统查找存放命令的目录。

  • 变量实验

实验环境准备:
写一个简单的变量脚本

cd /mnt
vim test.sh
echo $a

环境级变量:在shell键入a=1 echo $a 然后运行变量脚本发现不会生效,键入export a=1后再次运行脚本,发现生效,关闭当前shell再打开一个shell运行变量脚本,发现不会生效

用户级变量:cd ~切换到用户家目录,编辑配置文件vim .bash_profile 设置完毕soruce .bash_profile后运行变量脚本,发现生效 切换到student用户运行变量脚本,发现失效

系统级变量:编辑配置文件vim /etc/profile设置完毕source /etc/profile后运行变量脚本,发现生效

PATH 环境变量:例如存在一个脚本在/mnt中,无法在别的目录中使用脚本名称直接运行该脚本,将/mnt 添加到PATH 环境变量 中去之后,就可以使用该脚本名称直接运行该脚本。相当于告诉系统可以在/mnt寻找该脚本。

vim /etc/profile
export PATH=$PATH:/mnt
source /etc/profile
  • 变量名称的规范

变量名称中国通常包含大小写字母,数字,下划线(非必须),且不能以数字开头
例如:
HELLO_LINUX
Hello_Linux
hellO_linuX

  • 字符的转译及变量的声明
\	转译单个字符
""	弱引用,批量转译""中出现的字符
''	强引用,批量转译''中出现的字符 
''与""的区别	""不能转译 \ ` ! $
${}	变量声明  例如:a=1 echo $ab echo ${a}b

$与`` 效果相似
  • 变量值传递(交互式)
$1	脚本后的第一串字符串
$2
$3
$#	脚本后所跟字符串的个数
$*	脚本后跟的所有字符串,模式为"1 2 3"
$@	脚本后跟的所有字符串,模式为"1" "2" "3"
$?	是命令在执行完成之后产生的退出值,范围是[0-255]
当$0=0是标示命令执行没有错误输出,1是有错误输出,这个值可以用exit命令执行,例如 exit 66
  • read命令实现变量传递(非交互式)
read WORD
read -p "input:" WORD
read -s  ##不显示设定内容

echo $WORD  ##查看
  • 设定命令别名

shell临时设定:

alias xie='vim'

用户设定:

vim ~/.bashrc
alias xie='vim'
source ~/.bashrc

系统设定:

vim /etc/bashrc
alias xie='vim'
source /etc/bashrc

删除:

用户设定和系统设定直接在配置文件删除即可
shell终端需要键入命令:
unalias xie
  • 利用命令执行结果设定变量
Hostname=$(hostname)  ##只适用于shell
Hostname=`hostname`  ##通用

$? 是命令在执行完成之后产生的退出值,范围是[0-255]
当$0=0是标示命令执行没有错误输出,1是有错误输出,这个值可以用exit命令执行,例如 exit 66

END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值