当前位置: 首页 > article >正文

1.Shell变量

1.shell变量介绍

  • Linux Shell中的变量分为: 系统变量 和 用户自定义变量
  • 系统变量:$HOME、$PWD、$SHELL、$USER等等, 比如 echo $HOME
  • 显示当前shell所有变量 :set

2.自定义变量

2.1 语法规则

# 基本语法
1. 定义变量: 变量名=值
2. 撤销变量: unset变量
3. 声明静态变量: readonly变量, 注意:不能unset

# 多行注释
:<<!
注释的内容
!
# 定义变量的规则
1. 变量名称可以由字母、数字、和下划线组成,但不能以数字开头。 5A=200(错)
2. 等号两侧不能有空格
3. 变量名称一般习惯为大写,这是一个规范,我们遵守即可

# 将变量的返回值赋值给变量
1. A=`date` 反引号,运行里面的指令,并把结果返回给A变量
2. A=$date 等价于反引号

2.2案例

#!/bin/bash

# 案例1: 定义变量A
A=100
# 输出变量
echo A=$A
echo "A=$A"

# 案例2:撤销变量A
unset A
echo "A=$A"

# 案例3: 声明静态变量B=2,不能unset
readonly B=2
echo "B=$B"

# 将指令返回的结果赋值给变量
C=`date`
D=$(date)
echo "C=$C"
echo "D=$D"

# 使用环境变量
echo "BASH=$bash"

3.环境变量

3.1 语法规则

# 基本语法
1. export 变量名=变量值
2. source 配置文件
3. echo $变量名

3.2案例

# 1.在/etc/profile文件中定义TOMCAT_HOME环境变量
# 2.查看环境变量TOMCAT_HOME的值

vim /etc/profile
export TOMACAT_HOME=/opt/tomcat

4.位置参数变量

4.1 基本语法

# 基本语法
    $n (功能描述: n为数字,$0代表命令本身 
        $1-$9代表第一到第九个参数,十以上的参数,十以上的参数需要用大括号包含,如${10} )
    $* (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)
    $@(功能描述:这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待)
    $#(功能描述:获取所有输入参数个数,常用于循环)

4.2例子

#!/bin/bash
echo "0=$0 1=$1 2=$2"
echo "所有参数=$*"
echo "$@"
echo "参数的个数=$#"

5.预定义变量

5.1 语法规则

# 基本介绍
    就是shell设计者事先已经定义好的变量,可以直接在shell脚本中使用

# 基本语法
    $$ (功能描述:当前进程的进程号(PID))
    $! (功能描述:后台运行的最后一个进程的的进程号(PID))
    $? (功能描述: 最后一次执行的命令的返回状态,如果这个变量值为0,
                  证明上一个命令执行正确,否则就是不正确)

5.2案例


http://www.kler.cn/a/416604.html

相关文章:

  • RabbitMQ原理架构解析:消息传递的核心机制
  • 卸载 Archiconda
  • 如何使用 Chrome 无痕浏览模式访问网站?
  • Python 爬虫指定数据提取【Xpath】
  • 服务器命令行复制文件
  • Avalonia11中读取外部配置文件
  • 七:仪表盘安装-controller node
  • SAP SD学习笔记16 - 请求书的取消 - VF11
  • AWS海外注册域名是否需要实名认证?
  • Qt详解QUiLoader 动态加载UI文件
  • Qt 窗口类型、窗口标志和窗口属性
  • rocketmq windows环境部署
  • uniapp图片上传预览uni.chooseImage、uni.previewImage
  • 数组和链表OJ题
  • 「网络安全入门」什么是网络安全
  • 智慧防汛平台在城市生命线安全建设中的应用
  • 用Pycharm安装manim
  • 网络安全系列 之 密钥安全管理
  • 【leetcode100】合并区间
  • Android -- 简易音乐播放器
  • 带外配置IP
  • 深拷贝的实现
  • PKO-LSSVM-Adaboost班翠鸟优化最小二乘支持向量机结合AdaBoost分类模型
  • webrtc视频会议学习(三)
  • redis的数据删除策略
  • Java线程池种类及具体应用场景