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

[Shell] ${} 的多种用法

文章目录

  • 解释
  • 代码

解释

在Shell脚本中,${} 是一种变量替换语法。它用于获取和操作变量的值。

具体来说,${} 可以用来执行以下操作:

  1. 变量引用:${variable} 表示引用变量 variable 的值。

  2. 变量默认值:${variable:-default_value} 表示如果变量 variable 为空或未设置,则使用 default_value 作为其值。

  3. 变量存在性检查:${variable:+value_if_exists} 表示如果变量 variable 存在且非空,则使用 value_if_exists 作为其值。

  4. 变量长度获取:${#variable} 表示获取变量 variable 的长度。

  5. 字符串截取:${variable:start:length} 表示从变量 variable 的 start 位置开始截取长度为 length 的子字符串。

  6. 字符串替换:${variable/pattern/replacement} 表示将变量 variable 中匹配 pattern 的部分替换为 replacement。


代码

#!/bin/bash# 变量引用示例
name="Alice"
echo "Hello, ${name}!"  
# 输出:Hello, Alice!# 变量默认值示例
unset age
default_age=18
echo "Age: ${age:-$default_age}"  
# 输出:Age: 18,因为变量 age 未设置,默认使用 $default_age 的值# 变量存在性检查示例
name="Bob"
echo "Welcome, ${name:+$name}"  
# 输出:Welcome, Bob,因为变量 name 存在且非空# 变量长度获取示例
message="Hello, World!"
echo "Message length: ${#message}"  
# 输出:Message length: 13# 字符串截取示例
string="abcdefg"
echo "Substring: ${string:1:3}"  
# 输出:Substring: bcd,从位置 1 开始截取长度为 3 的子字符串# 字符串替换示例
string="Hello, world!"
echo "Replace: ${string/world/China}"  
# 输出:Replace: Hello, China!,将字符串中的 "world" 替换为 "China"
http://www.lryc.cn/news/211534.html

相关文章:

  • 基于SpringBoot的社区医院管理系统设计与实现
  • Spring的执行流程与Bean的生命周期
  • 使用 SQL 的方式查询消息队列数据以及踩坑指南
  • 拿下国家级信创认证 中科驭数KPU SWIFT-2200N成为国内首款满足金融业严苛要求的DPU产品
  • centos怎么禁用和关闭selinux
  • 【LeetCode刷题日志】88.合并两个有序数组
  • 计算机考研 | 2013年 | 计算机组成原理真题
  • [Unity][VR]透视开发系列4-解决只看得到Passthrough但看不到Unity对象的问题
  • 电气工程 自动化 机械工科学生来看看
  • NewStarCTF2023week4-midsql(利用二分查找实现时间盲注攻击)
  • null,undefined的区别?
  • 2.flink编码第一步(maven工程创建)
  • Unit1_1:分治问题之时间复杂度求解
  • React hooks的闭包陷阱
  • 20.3 OpenSSL 对称AES加解密算法
  • 一文详解防御DDoS攻击的几大有效办法
  • Python二级 每周练习题24
  • MySQL - Buffer Pool
  • c++ 拆分函数返回值和参数类型
  • Ubuntu 23.10安装TeXlive并安装CTEX中文支持
  • SpringBoot中CommandLineRunner详解(含源码)
  • 通信基础(一):数据传输基础
  • 故障诊断模型 | Maltab实现BiLSTM双向长短期记忆神经网络故障诊断
  • 物联网和互联网医院小程序:如何实现医疗设备的远程监测和管理?
  • sharepoint2016-2019升级到sharepoint订阅版
  • CTFHub | MySQL流量、Redis流量、MongoDB流量的WriteUp
  • NSS刷题 js前端修改 os.path.join漏洞
  • ArcGIS Maps SDK for JS:隐藏地图边框
  • 带你秒懂MySQL!! 一万字详细知识点和基础操作 欢迎评论区怼我 (三)
  • kubeadmin部署k8s1.27.4