3.4 shell脚本中的变量

1. 变量的定义

  1. 定义本身
    变量就是内存一片区域的地址
  2. 变量存在的意义
    命令无法操作一直变化的目标
    用一串固定的字符来表示不固定的目标

2. shell脚本中的变量的定义方法

  1. 环境级别
  2. 用户级别
vim ~/.bash_profile

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

  1. 系统级别
vim /etc/profile
vim /etc/profile.d/westos.sh

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

3. 变量名称

  1. 变量名称可能含有的字符:字母,下划线,数字
  2. 变量名称定义规则:
    不能以数字开头
  3. 变量名称短,全用大写字符
  4. 变量名称长,用_区分子类

4. 变量的转义

``:先执行``中的命令

  1. 单个转义\
    比如:对空格转义

在这里插入图片描述
\:只能转义单个字符
转义2个空格,需要2个转义字符\
在这里插入图片描述在这里插入图片描述

  1. 批量转义

""VS''
""是弱引用
''是强引用
""不能转义$,反向引号,!(history的命令),\转义符
''不能转义$USER
""可以转义$USER
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  1. $显示后面变量的数值
  2. 变量的声明
A=1
echo $A
echo ${A}b

在这里插入图片描述

  1. 数组的表示
    @:n串字符
    *:一个字符
    #*:显示数组当中元素的个数

在这里插入图片描述
将之前的数组清除:

unset A			//删除A这个数组
unset A[n]		//删除数组中的第1-n个元素

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

5. Linux中命令的别名设定

  1. 临时设定
alias xie='vim'

在这里插入图片描述

  1. 用户级别
vim ~/.bashrc

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

  1. 系统级别
vim /etc/bashrc
  1. 删除当前环境中的alias
unalias xie

在这里插入图片描述

6. 用户环境变量的设定

  1. 查看用户环境变量
echo $PATH

在这里插入图片描述

  1. 将/mnt加入用户变量
vim ~/.bash_profile
#####export PATH=$PATH:/mnt	//原始环境变量的基础上加上新的环境变量/mnt
source ~/.bash_profile

echo是在内核上的,touch是外部命令;
环境出现问题,必须使用绝对路径
在这里插入图片描述在这里插入图片描述

  1. Linux配置java环境

安装java,以及java的开发包

dnf install java-11-openjdk.x86_64 java-11-openjdk-devel -y

查看java的安装位置

rmp -ql java	//java都不在/bin下

编写一个shell脚本

vim westos.java
public class westos{
public static void main(String args[]){
System.out.println("hello westos");
}
}

在这里插入图片描述

配置环境变量

[root@westos_node1 Desktop]# cat /etc/profile.d/java.sh 
#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/jre-openjdk
export PATH=$PATH:$JAVA_HOME
export CLASSPATH=.:$JAVA_HOME:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
[root@westos_node1 Desktop]# source /etc/profile.d/java.sh 

在这里插入图片描述

执行脚本

[root@westos_node1 Desktop]# java westos.java
hello westos

在这里插入图片描述

7. 脚本中的传参

  1. 非交互式的模式:没有任何的命令输出
变量 说明
$0 脚本本身
$1 脚本后的第一串字符
$2 脚本后的第二串字符
$* 脚本后所输入的所有字符
$@ 脚本后输入的所有字符
$# 脚本后输入的字符串个数
  1. 交互式模式脚本的书写
参数 说明
-s 加密
-p 提示输出

测试题

sh ctrl_user.sh
当脚本后面字符串不合要求时,报错:
Usage: $0 create | delete !!

sh ctrl_user.sh create
输出:
please input username: user1
user1 is exist
please input password:无回显
用户user1会被建立,并设定其密码为以上输入的密码

sh ctrl_user.sh delete
please input username: user1
user1 is not exist
user1存在
userdel -r user1
user1 is deleted

8. 脚本函数

  1. 定义:程序的别名
  2. 设定方式:
WORD()
{
	action1
	action2
}

测试题

sh create_user.sh
please input username :westos
westos 用户存在,就输出westos is existplease input username:
westos 用户不存在,就输出please input password:(无回显密码)
此用户会自动建立并且密码为提示后设定的密码
并且,显示:westos is created
并再次提示:please input username:
please input username:exit,此脚本退出

猜你喜欢

转载自blog.csdn.net/weixin_47133613/article/details/114762718
3.4