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