shell 中的变量,常用命令全解(1)【看完再也不怕看不懂脚本啦】

"本文将深入探讨shell中的变量管理,包括变量定位技巧、不同类型的变量(本地、全局和内置)、位置变量和特殊变量的使用,以及如何利用默认值和截取技巧。实例演示了如何在bash脚本中设置、查看和操作变量,以及如何通过 `${}

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

shell定位

shell的定义:在计算机科学当中,shell就是一个命令解释器
在这里插入图片描述

一句话:shell就是在操作系统和应用程序之间的一个命令翻译工具。

shell中的变量

变量定位:变量包括两部分:变量名【不变的】= 变量值【可变的】
变量分类

  • 本地变量:手工方式定义的作用范围小的变量
  • 全局变量:手工|默认方式定义作用范围大的变量
  • 内置变量:bash命令中自带的一些参数变量

普通变量的定义

  • 变量名 = 变量值 #变量值必须是一个整体,没有特殊字符
  • 变量名 = ‘变量值’ #我们看到什么样子,输出就是什么样子
  • 变量名= “变量值” #先对变量名值进行解析,判断有没有指代的

习惯:数字不加引号,其他默认加双引号

命令变量:变量名= $(命令)
全局变量的定义:env 只显示全局变量。定义方法:export 变量=值(常用)
在这里插入图片描述
取消变量unset 变量名

位置变量&特殊变量

#!/bin/bash
# 获取指定位置的参数,位置变量
echo "第一个位置变量是$1"
echo "第一个位置变量是$2"
echo "第一个位置变量是$3"
echo "第一个位置变量是$4"
echo "第一个位置变量是$5"

echo "脚本的名称是$0"    #获取文件名
echo "一共有 $# 个位置变量"
echo "所有位置变量是$@"
echo "当前脚本传入的参数数量是: $#"

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

小任务
看懂 vim /usr/sbin/service这个脚本文件

变量截取

格式:${变量名:起始位置:截取长度}

示例:
${file:0:5} 从第1个字符开始,截取5个字符
${file:5:5} 从第6个字符开始,截取5个字符
${file:0-6:3} 从倒数第6个字符开始,截取之后的3个字

默认值使用方法

场景一:
变量a如果有内容,那么就输出a的变量值
变量a如果没有内容,那么就输出默认的内容
格式:${变量名:-默认值}

套餐示例:
如果我输入的参数为空,那么输出内容是 "您选择的套餐是: 套餐 A"
如果我输入的参数为n,那么输出内容是 "您选择的套餐是: 套餐 n"
#!/bin/bash
# 套餐选择演示
a="$1"
echo "您选择的套餐是: 套餐 ${a:-A}"

场景二:
无论变量a是否有内容,都输出默认值
格式:${变量名+默认值}

场景示例:
不管我说国家法定结婚年龄是 多少岁,都输出 国家法定结婚年龄(男性)是 22 岁
#!/bin/bash
# 默认值演示示例二
a="$1"
echo "国家法定结婚年龄(男性)是 ${a+22} 岁"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值