『3-4』Linux之shell脚本中的变量

『3-4』Linux之shell脚本中的变量

变量的定义

定义本身:变量就是内存一片区域的地址

变量存在的意义

命令无法操作一直变化的目标

用一串固定字符来表示不固定的目标可以解决此问题

shell脚本中变量的定义方法

环境级别 export a=1

在环境关闭后变量失效,bash级别
在这里插入图片描述

新开一个bash

在这里插入图片描述

用户级别 vim ~/.bash_profile

export a=1
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

新开一个bash

在这里插入图片描述

切换用户westos

在这里插入图片描述

系统级别 vim /etc/profile

export a=2
在这里插入图片描述
在这里插入图片描述

新开一个bash

在这里插入图片描述

切换westos用户

在这里插入图片描述

扫描二维码关注公众号,回复: 13124467 查看本文章
vim /etc/profile.d/westos.sh

export b=3
在这里插入图片描述
在这里插入图片描述

新开一个bash

在这里插入图片描述

su - westos

在这里插入图片描述

三、变量名称

变量名称可包含的字符
字母
下划线
数字

变量名称定义规则
不能用数字开头
在这里插入图片描述
建议:
变量名称短全用大写字符
变量名称长用_区分子类
WESTOS
Westos_Linux
westoS_Linux
在这里插入图片描述

1.变量的转译

\ 转译单个字符

在这里插入图片描述

“” #弱引用,批量转译个数字符 不能转译“\” “ ” “$” “!"
在这里插入图片描述

''强引用
在这里插入图片描述

2. 声明

a=1
echo $ab
echo ${a}b
在这里插入图片描述

3.变量的数组

a=(1 2 3 4 5 6)
${a[@]:起始元素id:元素个数}

在这里插入图片描述

echo ${a[0]} 数组中第一个元素
echo ${a[-1]} 数组中最后一个元素在这里插入图片描述

ehco ${a[*]} 数组中的所有元素
echo ${a[@]}同上

在这里插入图片描述

echo ${a[@]:0-3}数组中1-3个元素
echo ${#a[@]}数组中元素的个数
在这里插入图片描述

create_user.sh userfile
userfile中的用户会被全部建立

四.Linux中命令的别名设定

alias xie='vim' 临时设定
在这里插入图片描述
在这里插入图片描述

vim ~/.bashrc只针对此用户生效
alias xie='vim'
在这里插入图片描述

vim /etc/bashrc 针对系统所有用户生效
alias xie='vim'
在这里插入图片描述

unalias xie 删除当前环境中的alias

5.用户环境变量的更改
[root@node126 ~]# date +%H:%M:%S

09:26:22
1.直接利用命令执行结果
$()|’’ 优先执行

TEST=hostname TEST=$(hostname)
TIME=$(date +%H:%M:%S)

[root@node126 ~]# TIME=$(date +%H:%M:%S)
[root@node126 ~]# echo $TIME
09:29:16
[root@node126 ~]# 

2.脚本中的参数
非交互模式:
$0 is /mnt/test.sh
$1 is westos
$2 is linux
$3 is redhat

$* is westos linux redhat

在这里插入图片描述
在这里插入图片描述
read -p "input:" test -p 提示字符串 read 命令交互读取 test 变量名称

在这里插入图片描述7.脚本函数

练习脚本
sh create_user.sh
Please input username: westos
westos exist --------->westos is exist-----> Please input username:
westos not exist --------- please input password:无回显密码
此用户会自动建立并且密码为提示后设定的密码
并显示:westos is created
并再次提示Please input username:
当Please input username:exit
此脚本退出

脚本书写思路
判定exit退出
[“USER” = “exit” -o “$User” = “EXIT”] && {
echo bye
}||{
进入判定用户是否存在
}
判定用户是否存在
用户存在显示返回判定exit
id 用户名称变量 &> /dev/null && {
echo 用户存在
判定exit
}
用户不存在建立用户返回判定exit
||{
显示 please input password:
}

猜你喜欢

转载自blog.csdn.net/qq_39679699/article/details/114394848
3-4