当前位置:首页 >娱乐 >bash 脚本中关于变量的一些用法总结 会看到它只打印第一个值

bash 脚本中关于变量的一些用法总结 会看到它只打印第一个值

2024-07-01 07:10:50 [百科] 来源:避面尹邢网

bash 脚本中关于变量的脚本一些用法总结

作者:刘光录 系统 Linux 除了这种用法之外,针对变量还可以有其他的中关总结一些操作,比如在未设置变量时设置一个默认值,于变用法以及为单个变量分配多个值等。脚本

我们先前写过关于 ​​bash 脚本中变量的中关总结用法​​​。其一般使用方式为,于变用法使用一个变量存储一些数据,脚本然后调用变量,中关总结如下所示:​

bash 脚本中关于变量的一些用法总结 会看到它只打印第一个值

name="tiap"
echo "hello, $name!"

除了上面这种用法之外,针对变量还可以有其他的脚本一些操作,比如在未设置变量时设置一个默认值,中关总结以及为单个变量分配多个值等。于变用法

bash 脚本中关于变量的一些用法总结 会看到它只打印第一个值

下面我们来详细看一下。脚本

bash 脚本中关于变量的一些用法总结 会看到它只打印第一个值

使用数组

数组在 bash 脚本中是中关总结经常会用到的一种数据类型。其定义方法为:

name=("tiap" "linux")

上述脚本,是在数组 name 中定义了两个变量,分别是 tiap 和 linux。

那么,如何访问这些值呢?

如果你运行 echo $name,会看到它只打印第一个值,tiap。访问其他的值需要使用另外的方式,即使用 ${ variable[number]} 语法从数组变量中提取特定的值。如下所示:

echo "hello ${ name[1]}!"

上面脚本将打印 "hello, linux!"

与其他大多数编程语言类似,数组索引的顺序,是从 0 开始的。所以,访问第一个元素的方式为:

echo "hello ${ name[0]}!"

它与 echo "hello, $name!" 的结果是完全相同的,由此可见,访问数组的时候,其索引值 [number] 是可以省略的,当省略索引值的时候,取默认值 0。

索引仅表示项在数组中的位置,所以索引0是数组中的第一个元素。

未设置变量时使用默认值

当变量未按以下方式设置时,可以将变量默认设置为某个字符串:

${ variable:-string}

看下面的例子:

echo "hello ${ name:-nobody}!"

由于变量 name 没有设置任何值,所以它会使用 nobody 作为默认值,所以上述脚本将会打印 "hello, nobody!"。

如果预先设置了变量值,当然会使用为其设置的值:​

name="tiap"
echo "hello ${ name:-nobody}!"

其结果为 "hello, tiap!"

在已设置变量值时修改值

我们还可以设置变量以在设置变量时返回某个值。这将导致变量在设置时打印某个字符串,而在未设置时不打印任何字符串。其语法结构如下:

${ variable:+string}

看下面的例子:

echo "hello ${ name:+person}!"

由于变量 name 没有设置,所以它只会打印 "hello !"。

修改上面的脚本,为变量 name 设置一个值,它将不会使用为其设置的值,而是使用调用的时候提供的值:​

name="tiap"
echo "hello ${ name:+person}!"

上述脚本的结果为 "hello person!"。

变量的间接引用

看下面的语法结构:

${ !variable}

这个在功能上优点复杂,但是当你了解它的工作原理后,就很容易理解了,看下面的例子:​

name="tiap"
variable="name"
echo "hello ${ !variable}!"

上述脚本将会打印 "hello tiap!"。

变量名前面的感叹号 ! 会替换变量名,然后在查找该变量名的相关变量值。

计算变量的长度

现在我们再来看如下语法结构:

${ #variable}

它将会打印变量的长度,但是会根据变量是字符串还是数组而略有不同。

如果变量为字符串,那么将会返回字符串中字符的个数,如下所示:​

variable="name"
echo "${ #variable}."

上述脚本的结果为 4。

如果变量为数组,那么将会打印数组中元素的个数,看下面的例子,其结果将会打印 2:​

variable=("name" "word")
echo "${ #variable}."

小写和大写字符串

要改变变量值的大小写,可以分别使用运算符 ^ 和,,如下所示:​

# 转为大写
${ variable^}
${ variable^^}
# 转为小写
${ variable,}
${ variable,,}

上述脚本中,一个运算符 ^ 和两个^^ 有什么区别呢?一个运算符(比如 ${ variable^} )只会修改变量值中的第一个字母,而两个运算符的时候(比如 ${ variable^^})会修改整个字符串。比如:​

variable="name"
echo "${ variable^}"

结果将为:Name。

而:

variable="name"
echo "${ variable^^}"

其结果将会为:NAME。

同样,小写转换符也是一样。下面脚本将会打印:wIDEname

variable="WIDEname"
echo "${ variable,}"

而下面脚本将会打印:widename

variable="WIDEname"
echo "${ variable,,}"
责任编辑:庞桂玉 来源: TIAP bash脚本变量

(责任编辑:时尚)

    推荐文章
    热点阅读