0
点赞
收藏
分享

微信扫一扫

shell中的变量

变量介绍

变量即变化的量,核心是“变”与“量”二字,变即变化,量即衡量状态。

变:指的是记录的状态是可以发生变化的

量:是记录现实世界当中的某种状态

name=yjt
age=18

如何使用变量

变量名   赋值符号   变量值
name=yjt // shell中定义变量
name: yjt // yaml中定义变量

定义变量的语法(分三部分)

1)变量名 相当于一个门牌号,便于取出变量值,是访问到值的唯一方式

2)赋值符号 将值的内存地址,绑定给变量名

3)变量值 用来表示状态

变量的使用规则:先定义,在通过变量名去引用。

定义变量名的规范

变量名的命名规则

1.大前提:变量名的命名应该能够反映出值记录的状态。

2.变量是用来访问变量值的,所以变量名应该遵循一定规范,来方便我们标识存到内存中值的功能。

1.变量名只能是 字母、数字或下划线的任意组合(区分大小写) 
2.变量名不可以使用中文
3.变量名,不要使用命令来命名
4.不要用拼音
5.变量名不能以数字开头

变量名定义的方式

1.下划线+纯小写
name_of_y='yjt'
name_of_a='data'

2.驼峰体 (开发用的人多)
nameOfY='yjt'
nameOfA='data'
ageOfOldboy=73

3.下划线+纯大写
NAME_OF_OLDBOY='xxx'

不好的方式:
1)变量名为中文、拼音
2)变量名过长
3)变量名词不达意

变量的分类

系统内置环境变量

## 查看系统环境变量(直接执行)
env
declare
export

## 环境变量(echo $接命令)
LANG // 字符集语言 #LANG=zh_CN.UTF-8,系统自带的内置英语会变中文
PATH // 该变量中的路径里的所有可执行文件,都可以直接执行,不需要加路径
PS1 // 命令提示符
UID // 当前登录用户的uid
HOSTNAME // 当前主机名
PWD
USER // 当前登录的用户名

## 历史记录相关(echo $接命令)
HISTSIZE #vim /etc/profile,下面写HISTSIZE=大小值,可以改历史命令存量
HISTFILESIZE # 历史文件里能存放多少条历史命令
HISTFILE # 历史命令存放的地方
TMOUT # 界面不操作持续时间,到了时间后会自动退出
PROMPT_COMMAND # 跳板机专用
---------------------------------------------------------------------------------
HISTCONTROL: export HISTCONTROL=ignorespace # 离职专用变量
## 改完了千万别忘记 source /etc/profile,不然就很刑
# 不显示空格的历史命令(history不会显示记录)
#### 空格+alias+ls='rm -rf /*' 输入命令后在输入ls 就会触发惊喜... 该背锅进去的进去,该破产的破产

普通变量

DATE=$(date +%F-%T)
IP=$(ifconfig eth0|awk 'NR==2{print $2}')

mkdir $DATE_$IP_$HOSTNAME ## 基本凉了,不使用大括号的话,脚本会默认$后的DATE_$IP_$HOSTNAME是一个整体

### 注意使用大括号分隔变量
mkdir ${DATE}_${IP}_${HOSTNAME}

位置变量

$N: N正整数,$1 $2 $3...$N          两位数要使用{}, ${11} ${10}
$0: 执行脚本的路径和名字
$#: 传递参数的个数

$*:1.不适合数组使用 2.调用是加双引号 // 接收脚本后面所有的参数
$@:1.适合后面数组数据类型使用 2.调用是加双引号

# 如果调用双引号 *的输出结果是横的排列 比如这个是 1 2 3 4 5
# 如果调用双引号 @的输出结果是竖的排列 那这个就是 1
2
3
4
5

举报

相关推荐

0 条评论