|
@@ -2,11 +2,11 @@
|
|
|
|
|
|
我们已经了解了字符串、数组、哈希表、整数、浮点数的基本用法,但应付某些复杂的场景依然力不从心。
|
|
我们已经了解了字符串、数组、哈希表、整数、浮点数的基本用法,但应付某些复杂的场景依然力不从心。
|
|
|
|
|
|
-变量修饰符是 zsh 中有一个很独特的概念,对变量进行操作,功能上和函数类似,但用起来更方便,在一行代码里实现复杂功能主要靠它了。而代价是可读性更差,怎么用就要自己权衡了。它也是 zsh 最有特色的部分之一。变量修饰符主要应用于数组和哈希表,但也有一小部分可以应用于字符串(整数和浮点数也会被当成字符串处理)。
|
|
|
|
|
|
+变量修饰语是 zsh 中有一个很独特的概念,对变量进行操作,功能上和函数类似,但用起来更方便,在一行代码里实现复杂功能主要靠它了。而代价是可读性更差,怎么用就要自己权衡了。它也是 zsh 最有特色的部分之一。变量修饰语主要应用于数组和哈希表,但也有一小部分可以应用于字符串(整数和浮点数也会被当成字符串处理)。
|
|
|
|
|
|
-### 变量修饰符的格式
|
|
|
|
|
|
+### 变量修饰语的格式
|
|
|
|
|
|
-其实前边的文章中,变量修饰符已经出现过,但当时没有详细说明。
|
|
|
|
|
|
+其实前边的文章中,变量修饰语已经出现过,但当时没有详细说明。
|
|
|
|
|
|
比如在大小写转换的例子中。
|
|
比如在大小写转换的例子中。
|
|
|
|
|
|
@@ -22,16 +22,16 @@ ABCDE ABCDE --- ABCDE ABCDE
|
|
abcde abcde --- abcde abcde
|
|
abcde abcde --- abcde abcde
|
|
```
|
|
```
|
|
|
|
|
|
-这里的 `(U)`、`:l` 等等都是变量修饰符。变量修饰符主要有两种格式。
|
|
|
|
|
|
+这里的 `(U)`、`:l` 等等都是变量修饰语。变量修饰语主要有两种格式。
|
|
|
|
|
|
```
|
|
```
|
|
${(x)var}
|
|
${(x)var}
|
|
${var:x}
|
|
${var:x}
|
|
```
|
|
```
|
|
|
|
|
|
-其中 var 是变量名,x 是 一个或多个字母,不同字母的功能不同。第二行的冒号也可能是其他符号。${var} 和 $var 基本相同,大括号用于避免变量名中的字符和后边的字符粘连,通常情况是不需要加大括号的。但如果使用变量修饰符,大括号就必不可少(其实第二种格式中,大括号可以省略,但考虑可读性和错误提示等因素,还是加上比较好)。
|
|
|
|
|
|
+其中 var 是变量名,x 是 一个或多个字母,不同字母的功能不同。第二行的冒号也可能是其他符号。${var} 和 $var 基本相同,大括号用于避免变量名中的字符和后边的字符粘连,通常情况是不需要加大括号的。但如果使用变量修饰语,大括号就必不可少(其实第二种格式中,大括号可以省略,但考虑可读性和错误提示等因素,还是加上比较好)。
|
|
|
|
|
|
-变量修饰符可以嵌套使用。因为加了修饰符的变量依然是变量,可以和正常的变量一样处理。
|
|
|
|
|
|
+变量修饰语可以嵌套使用。因为加了修饰语的变量依然是变量,可以和正常的变量一样处理。
|
|
|
|
|
|
```
|
|
```
|
|
% str=abc
|
|
% str=abc
|
|
@@ -50,7 +50,7 @@ Abc
|
|
|
|
|
|
这里要注意 $ 之后全程不能有空格,否则会有语法错误。也就是说不能通过加空格来避免因为字符挤在一起造成的可读性变差。但熟悉了格式后,就可以比较容易识别出代码的功能。比较复杂的逻辑可以换行继续写,而没必要一定嵌套使用。
|
|
这里要注意 $ 之后全程不能有空格,否则会有语法错误。也就是说不能通过加空格来避免因为字符挤在一起造成的可读性变差。但熟悉了格式后,就可以比较容易识别出代码的功能。比较复杂的逻辑可以换行继续写,而没必要一定嵌套使用。
|
|
|
|
|
|
-知道了变量修饰符的用法后,重要的就是都有哪些可以使用的变量修饰符了。
|
|
|
|
|
|
+知道了变量修饰语的用法后,重要的就是都有哪些可以使用的变量修饰语了。
|
|
|
|
|
|
### 变量默认值
|
|
### 变量默认值
|
|
|
|
|
|
@@ -226,7 +226,7 @@ defghi1
|
|
|
|
|
|
### 总结
|
|
### 总结
|
|
|
|
|
|
-文中只介绍了几个比较常用的变量修饰符,还有一些没有提及,可能后续再补充。
|
|
|
|
|
|
+文中只介绍了几个比较常用的变量修饰语,还有一些没有提及,可能后续再补充。
|
|
|
|
|
|
### 参考
|
|
### 参考
|
|
|
|
|