Shellshell脚本中的变量

Posted S4061222

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shellshell脚本中的变量相关的知识,希望对你有一定的参考价值。


一、变量的定义

1.定义

变量就是内存一片区域的地址

2.变量存在的意义

命令无法操作一直变化的目标
用一串固定的字符来表示不固定的目标可以解决此问题

二、shell脚本中变量的定义方法

1.环境级别

export a=1
在环境关闭后变量失效
在这里插入图片描述
在这里插入图片描述

2.用户级别

vim ~/.bash_profile
export a=1
在这里插入图片描述在这里插入图片描述在这里插入图片描述

3.系统级别

vim /etc/profile
export a=1
vim /etc/profile.d/westos.sh一般在/etc/profile.d/目录中编辑一个文件
export b=1
在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.取消

在这里插入图片描述

5.PS执行命令的提示符

在这里插入图片描述

三、变量

1. 变量名称可包含的字符

字母 / 下划线_ / 数字

2. 变量名称定义规则

不能用数字开头

3. 建议

变量名称短全用大写字符:

WESTOS

变量名称长用_区分子类:

Westos_Linux
westoS_Linux

4. 变量的转译

\\  #转译单个字符
""  #弱引用,批量转译,不能转译"\\" "" "$" "!"
''  #强引用

在这里插入图片描述在这里插入图片描述

5. 变量的声明

a=1
echo $ab
echo ${a}b #a是变量,对a做变量声明

在这里插入图片描述

6. 变量的数组

echo $a ##默认输出数组第一个元素
echo ${a[0]} ##数组中第一个元素
echo ${a[-1]} ##数组中最后一个元素
echo ${a[*]} ##数组中所有元素
echo ${a[@]} ##数组中所有元素
echo ${#a[@]} ##数组中元素的个数

在这里插入图片描述

echo ${a[@]:0:2} ##数组中0后面排两个元素
echo ${a[@]:5:3} ##5后面排3个元素,5后面只有1个

不能有负数
在这里插入图片描述
在这里插入图片描述

unset a[0] ##删除数组的第一个元素
a[0]=1 ##添加数组的第一个元素1

在这里插入图片描述

四、Linux中命令的别名设定

在这里插入图片描述

1.环境级别

在这里插入图片描述

2.用户级别

在这里插入图片描述

3.系统级别

切换其他用户也生效
在这里插入图片描述

4.取消

在这里插入图片描述

五、用户环境变量的更改

用户级别:vim ~/.bash_profile 中 加入:/mnt
在这里插入图片描述取消:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

六、脚本函数

1. 直接利用命令执行结果

$ ; () ; | ; " "##这四种优先执行

TEST=`hostname’ 等同于 TEST=$(hostname)

2. 脚本中的传参

非交互模式: 没有回应直接给出结果
在这里插入图片描述

$0 is westos3.sh <脚本本身>
$1 is jiaojiao <脚本后所输入的第一串字符>
$2 is sun <脚本后所输入的第二串字符>
$* is jiaojiao sun <脚本后所输入的所有字符 “linux haha 123”>
$@ is jiaojiao sun <脚本后所输入的所有字符 ‘linux’ ‘haha’ ‘123’>
$# is 2 <脚本后所输入的所有字符串个数>

在这里插入图片描述在这里插入图片描述
交互模式传参: 有回应

read WESTOS ##对westos赋值

在这里插入图片描述

read -p “please input word:” ##输出提示语

在这里插入图片描述

s ##隐藏输入内容

在这里插入图片描述

echo -e “\\n” ## -e 执行动作,"\\n"多一行

在这里插入图片描述

“”

在这里插入图片描述

3. 脚本函数

定义: 程序的别名
设定方式:
WORD()
{ action1
action2
}
WORD 在脚本中就代表action1 action2这两个动作

(一)调用WESTOS函数
在这里插入图片描述(二) 调用WESTOS函数,并循环WESTOS
在这里插入图片描述(三)调用WESTOS函数,并循环WESTOS,输入 exit 退出
在这里插入图片描述
在这里插入图片描述

练习脚本

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 此脚本退出

在这里插入图片描述脚本思路
在这里插入图片描述
测试:
在这里插入图片描述

以上是关于Shellshell脚本中的变量的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本

Shellshell脚本的基础知识

shell脚本介绍与变量应用

Shell脚本从入门到实战

Shell脚本从入门到实战

Shellshell中的运算