|
@@ -90,7 +90,7 @@ abc
|
|
|
3
|
|
|
|
|
|
# I 是从右往左找,如果找不到则为 0, 方便用来判断
|
|
|
-% (( $str[(I)cd] )) && echo good
|
|
|
+% (($str[(I)cd])) && echo good
|
|
|
good
|
|
|
|
|
|
# 找不到则为 0
|
|
@@ -204,14 +204,14 @@ a2345defg
|
|
|
如果用 [[ "$strxx" == "" ]] ,那无法区分变量是没有定义还是内容为空,在某些情况是需要区分二者的。
|
|
|
|
|
|
```
|
|
|
-% (( $+strxx )) && echo good
|
|
|
+% (($+strxx)) && echo good
|
|
|
|
|
|
% strxx=""
|
|
|
-% (( $+strxx )) && echo good
|
|
|
+% (($+strxx)) && echo good
|
|
|
good
|
|
|
```
|
|
|
|
|
|
-(( $+var )) 的用法也可以用来判断其他类型的变量,如果变量存在则返回真(0),否则返回假(1)。
|
|
|
+(($+var)) 的用法也可以用来判断其他类型的变量,如果变量存在则返回真(0),否则返回假(1)。
|
|
|
|
|
|
### 字符串匹配判断
|
|
|
|
|
@@ -222,7 +222,7 @@ good
|
|
|
% str2=bc
|
|
|
|
|
|
# 星号要在引号外边
|
|
|
-% [[ "$str1" == *"$str2"* ]] && echo good
|
|
|
+% [[ $str1 == *$str2* ]] && echo good
|
|
|
good
|
|
|
```
|
|
|
|
|
@@ -234,7 +234,7 @@ good
|
|
|
# 少量字符串的话,尽量不要用 grep
|
|
|
# 本文不讲正则表达式格式相关内容
|
|
|
# 另外 zsh 有专门的正则表达式模块
|
|
|
-% [[ "$str" =~ "c[0-9]{2}\de" ]] && echo a
|
|
|
+% [[ $str =~ "c[0-9]{2}\de" ]] && echo a
|
|
|
a
|
|
|
```
|
|
|
|
|
@@ -347,7 +347,7 @@ echo ${"$(<test.txt)"[(fr)*pp*]#line}
|
|
|
|
|
|
读进程输出和读文件类似。
|
|
|
|
|
|
-上边字符串相关的处理,直接把 $(<test.txt) 换成 $(命令) 即可。如果一定需要一个文件名,可以这样。
|
|
|
+上边字符串相关的处理,直接把 \$(<test.txt) 换成 \$(命令) 即可。如果一定需要一个文件名,可以这样。
|
|
|
|
|
|
```
|
|
|
# 返回 fd 路径,优先使用,但某些场景会出错
|