bash 中 `${}` 的使用方法(由豆包生成)

在 Bash 中,${}是一种参数扩展的语法结构,具有以下主要用法:

一、变量替换

可以用来获取变量的值。

name="Alice"
echo "${name}"
# 输出:Alice

二、字符串操作

  1. 提取子字符串:

    • ${var:start:length}:从变量var中提取从start位置开始,长度为length的子字符串。
    str="Hello World"
    echo "${str:6:5}"
    # 输出:World
    
  2. 删除前缀或后缀:

    • ${var#pattern}:从变量var的开头删除最短匹配的pattern
    • ${var##pattern}:从变量var的开头删除最长匹配的pattern
    • ${var%pattern}:从变量var的末尾删除最短匹配的pattern
    • ${var%%pattern}:从变量var的末尾删除最长匹配的pattern
    path="/home/user/documents/file.txt"
    echo "${path##*/}"
    # 输出:file.txt
    echo "${path%/*}"
    # 输出:/home/user/documents
    

三、变量默认值和替换

  1. 默认值设置:

    • ${var:-default}:如果变量var已设置且非空,则返回其值;否则返回default
    var1=""
    var2="value"
    echo "${var1:-default_value}"
    # 输出:default_value
    echo "${var2:-default_value}"
    # 输出:value
    
  2. 强制替换为默认值:

    • ${var:=default}:如果变量var已设置且非空,则返回其值;否则将其设置为default并返回该值。
    var3=""
    echo "${var3:=new_value}"
    # 输出:new_value
    echo "var3 is now: $var3"
    # 输出:var3 is now: new_value
    

四、变量替换和错误处理

  1. 替换并检查是否为空:

    • ${var:+replacement}:如果变量var已设置且非空,则返回replacement;否则返回空字符串。
    var4=""
    var5="value"
    echo "${var4:+replacement_value}"
    # 输出:空行
    echo "${var5:+replacement_value}"
    # 输出:replacement_value
    
  2. 错误处理:

    • ${var?error_message}:如果变量var已设置且非空,则返回其值;否则打印error_message并退出脚本。
    var6=""
    echo "${var6?Variable is not set}"
    # 脚本会退出并显示错误消息:Variable is not set
    

总之,${}在 Bash 中是非常强大的语法结构,可以用于各种变量操作和字符串处理任务。

posted @ 2024-09-25 22:03  caijianhong  阅读(19)  评论(0编辑  收藏  举报