shell脚本 变量类型

什么是Shell变量

用一个固定的字符串去表示不固定的内容。

Shell变量的类型

shell脚本中自定义变量的类型,我们这里分为:

  1. 自定义变量
  2. 环境变量
  3. 位置变量
  4. 与定义变量

这四类,它们有一些相同点,但又有些不同点。

自定义变量

  • 自定义变量的定义:

    • 变量名=变量值
    • 变量名必须以字母或下划线开头,区分大小写
    • 注意定义变量时等号两端不能有空格。我们知道 shell 脚本是空格敏感的,这里就是体现之一。
  • 自定义变量的引用:$变量名或${变量名},使用大括号来明确$符号的作用域是一个好习惯

  • 查看自定义变量:echo ${变量名} 或 set(所有变量:包括自定义变量和环境变量)

  • 取消自定义变量:unset 变量名

  • 自定义变量的作用范围:仅在当前Shell中有效

环境变量

  • 环境变量的定义:

    • 方法一:export 变量名=变量值,同样不能有空格

    • 方法二:export 变量名 将自定义变量转换为环境变量

  • 环境变量的引用:$变量名或${变量名}

  • 查看环境变量:echo ${变量名}

  • 取消自定义变量:unset 变量名

  • 自定义变量的作用范围:在当前Shell中和子Shell中有效

位置变量

  • 直接在脚本中按$1, $2等这样引用(注意按顺序)
  • 在运行脚本时按位置传参

预定义变量

  • $0 脚本名(自己本身)
  • $! 上一个后台进程的PID
  • $? 上一个命令的返回值(0表示成功)
  • $* 所有的参数, "*"会将所有的参数作为整体,输出
  • $@ 所有的参数,"@"会将所有的参数分开,输出
  • $# 参数的个数
  • $$ 当前进程的PID

shell脚本 变量相关推荐

  1. Shell脚本变量揭秘

    文章目录 Shell脚本变量揭秘 一.自定义变量 1.定义新的变量 2.查看和引用变量的值 3.变量赋值的特殊操作 1)双引号("") 2)单引号(') 3)反撇号(`) 4)re ...

  2. 【跟晓月学shell脚本】掌握shell脚本变量实战案例

    前言 上篇文章我们探讨了shell脚本变量的基本原理和概念,本篇我们基于上面的内容增加一些实战. 如果你还没有学习shell脚本的变量理论,可以点击链接:[跟晓月学shell脚本]掌握shell脚本变 ...

  3. linux shell 数据类型,Linux Shell脚本 - 变量和数据类型

    摘要:本文主要学习了Shell脚本中的变量和数据类型. 变量 定义变量的语法 定义变量时,变量名和变量值之间使用"="分隔,并且等号两边不能有空格: 变量名=变量值 变量名规则 变 ...

  4. 【跟晓月学shell脚本】掌握shell脚本变量原理及概念

    前言 跟晓月一起学shell,死磕shell脚本,让shell脚本学习不再难. 想学习更多shell脚本的案例,可以前往我的师父的shell脚本专栏:shell脚本从入门到实战-案例篇 文章目录 前言 ...

  5. shell脚本——变量定义

    变量的定义 变量如何定义 变量的定义规则 变量名区分大小写 变量名不能有特殊符号 变量名不能以数字开头 等号两边不能有任何空格 变量的定义方式 基本方式 命令执行结果赋值给变量 交互式定义变量(rea ...

  6. linux脚本变量,shell脚本变量的使用

    问var=value 在export前后的差在哪? 这次让我们暂时丢开command line, 先了解一下bash变量(variable)吧- 所谓的变量,就是利用一个固定的"名称&quo ...

  7. shell 脚本 变量 获取程序输出结果异常分析

    1 2 3 #! /bin/bash pid=$(pgrep hello) echo ${pid} 脚本名称是 hello_test.sh 当hello进程存在时,总是返回两个值 当hello进程不存 ...

  8. Shell脚本——变量

    变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据.脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell 变量也遵循这个规则 在 Bash shell 中,每一个变量的值都 ...

  9. 05 linux shell脚本 变量的取用echo;变量的设置和修改;变量的使用规范以及示例

    linux shell 变量 设置 修改 规则 变量的取用: echo 变量的设置和修改 linux 变量 规则 变量 就是以一组文字或符号等,来取代一些配置或者是一串保留的数据! 变量的取用: ec ...

最新文章

  1. 深度学习--TensorFlow (2)单层感知器2 -- 实现多数据分类
  2. 测试DeltaCopy
  3. 德意志银行CEO:将逐渐用 AI 替代人工,银行决不会一成不变 凤凰科技 09-08 20:41 原标题:德意志银行CEO:将逐渐用 AI 替代人工,银行决不会一成不变 雷锋网AI金融评论报道,外媒i
  4. 孙剑亲自撰文:我在 Face++ 的这半年
  5. Visitor(访问者)--对象行为型模式
  6. Java 日期与时间
  7. 外挂:一个很杯具的关键字
  8. python包管理机制_Go 1.5之前的多种包管理机制简介(
  9. 利用opencv作透明重叠人群密度热度图
  10. 图像处理-与,或等运算
  11. CodeForces 292D Connected Components (并查集+YY)
  12. linux驱动篇-Led
  13. 【Python】python转义字符
  14. Ubuntu系统英文大小写CapsLock切换混乱解决方法!
  15. 华硕电脑 大白菜安装iso原版win7
  16. 项目总结--3(@Cacheable的使用方法和使用技巧)
  17. 即时消息服务器eChat
  18. 非正式协议/正式协议
  19. java故事之以月引序
  20. 【离散数学】 SEU - 24 - 2021/05/28 - Algebraic System

热门文章

  1. RuoYi-Cloud 进阶篇_01( Seata 单机环境搭建)
  2. java 集成kafka单机版 适配jdk1.8
  3. Docker - 实战TLS加密通讯
  4. Vue 组件开发 - 数据输入框组件
  5. linux-centos7 常用的基本命令--用户组管理
  6. mysql自定义排序以及优化like模糊查询
  7. python多进程写入mysql_Python实现 多进程导入CSV数据到 MySQL
  8. jq之callback
  9. 右下角文字如何写_如何提取任意小程序的小程序路径
  10. 天津理工计算机通信工程学院,2018年天津理工大学计算机与通信工程学院811信号与系统考研仿真模拟五套题...