变量状态

变量有未定义,已定义但为空值,已定义不为空值三种状态。

截取操作

  • r=${var#*xxx} 从前往后删,删到最近关键字
  • r=${var##*xxx} 从前往后删,删到最远关键字
  • r=${var%xxx*} 从后往前删,删到最近关键字
  • r=${var%%xxx*} 从后往前删,删到最远关键字
#!/bin/bash

var="aaa bbb ccc aaa bbb ccc";
r=${var#*bbb}
echo $r
r=${var##*bbb}
echo $r
r=${var%bbb*}
echo $r
r=${var%%bbb*}
echo $r

赋值操作

r=${xx-"aa"}

如果xx存在,x赋值aa,否则r赋值aa

r=${xx:-"aa"}

如果xx不存在或是空值r赋值aa,否则r赋值xx

r=${xx:="aa"}

如果xx不存在r赋值aa,xx存在且为空xx和r都赋值aa,xx存在且不为空则r赋值xx

r=${xx:?"aa"}

xx未定义或为空,发出警告

r=${xx:+"aa"}

xx未定义或为空r不赋值x保持原样,xx存在且不为空则r赋值aa

别名

  • 设置别名 alias
  • 取消别名 unalias

如果命令和别名都存在,执行别名而不是命令本身。

作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。
Copyright © 2017-2024 Gacfox All Rights Reserved.
Build with NextJS | Sitemap