1. 变量的定义
- 定义本身
变量就是内存一片区域的地址 - 变量存在的意义
命令无法操作一直变化的目标
用一串固定的字符来表示不固定的目标
2. shell脚本中的变量的定义方法
- 环境级别
- 用户级别
vim ~/.bash_profile
- 系统级别
vim /etc/profile
vim /etc/profile.d/westos.sh
3. 变量名称
- 变量名称可能含有的字符:字母,下划线,数字
- 变量名称定义规则:
不能以数字开头 - 变量名称短,全用大写字符
- 变量名称长,用_区分子类
4. 变量的转义
``
:先执行``
中的命令
- 单个转义
\
比如:对空格转义
\
:只能转义单个字符
转义2个空格,需要2个转义字符\
- 批量转义
""
VS''
""
是弱引用
''
是强引用
""不能转义$
,反向引号,!(history的命令),\转义符
''
不能转义$USER
""
可以转义$USER
$
显示后面变量的数值- 变量的声明
A=1
echo $A
echo ${A}b
- 数组的表示
@
:n串字符
*
:一个字符
#*
:显示数组当中元素的个数
将之前的数组清除:
unset A //删除A这个数组
unset A[n] //删除数组中的第1-n个元素
5. Linux中命令的别名设定
- 临时设定
alias xie='vim'
- 用户级别
vim ~/.bashrc
- 系统级别
vim /etc/bashrc
- 删除当前环境中的alias
unalias xie
6. 用户环境变量的设定
- 查看用户环境变量
echo $PATH
- 将/mnt加入用户变量
vim ~/.bash_profile
#####export PATH=$PATH:/mnt //原始环境变量的基础上加上新的环境变量/mnt
source ~/.bash_profile
echo是在内核上的,touch是外部命令;
环境出现问题,必须使用绝对路径
- 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. 脚本中的传参
- 非交互式的模式:没有任何的命令输出
变量 | 说明 |
---|---|
$0 | 脚本本身 |
$1 | 脚本后的第一串字符 |
$2 | 脚本后的第二串字符 |
$* | 脚本后所输入的所有字符 |
$@ | 脚本后输入的所有字符 |
$# | 脚本后输入的字符串个数 |
- 交互式模式脚本的书写
参数 | 说明 |
---|---|
-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. 脚本函数
- 定义:程序的别名
- 设定方式:
WORD()
{
action1
action2
}
测试题
sh create_user.sh
please input username :westos
westos 用户存在,就输出westos is exist
,please input username:
westos 用户不存在,就输出please input password:(无回显密码)
此用户会自动建立并且密码为提示后设定的密码
并且,显示:westos is created
并再次提示:please input username:
当please input username:exit
,此脚本退出