一、
序号 参数 说明1 a = b 如果string1等于string2,则为真2 string1 != string2 如果string1不等于string2,则为真
二、
if [ -d "/path/to/directory" ]; then:检查/path/to/directory是否为目录。if [ -f "/path/to/file" ]; then:检查/path/to/file是否为普通文件。if [ -z "$my_string" ]; then:检查$my_string是否为空字符串
三、$在脚本中的作用?
举个例子:
$$:当前 shell 的进程 ID。$0:脚本的名称。$1,$2, ...:传递给脚本的参数。$#:传递给脚本的参数个数。$*:所有传递给脚本的参数作为一个字符串。$@:所有传递给脚本的参数,每个参数作为一个单独的字符串。$?:上一个命令的退出状态。
算术运算
可以使用 $(( )) 来进行数学计算。
变量引用
当 $ 放在变量名前面时,表示引用该变量的值。
命令替换
当 $ 与 ( ) 或者 ````` 结合使用时,表示命令替换,即执行括号内的命令并将结果作为值。
四、awk -F '=' '{print $2}'
-
分隔字段:
awk -F '='指定=作为字段分隔符。
-
打印第二个字段:
{print $2}打印每行的第二个字段。
五、 if [[ "$filename" =~ \.(bin|rbf|tar.gz)$ ]];
-
[[ ... ]]:- 这是一个扩展的条件测试语法,提供了更多的功能和更好的可读性。
- 与
[ ... ]不同,[[ ... ]]不会进行单词拆分和文件名扩展,因此更安全。
-
=~:-
这是正则表达式匹配操作符。
[[ ... =~ ... ]]用于检查左边的字符串是否匹配右边的正则表达式。 -
[[ "$filename" =~ \.(bin|rbf|tar\.gz)$ ]]使用正则表达式匹配文件名的扩展名。 -
相当于
[ "$filename" == *.bin ] || [ "$filename" == *.rbf ] || [ "$filename" == *.tar.gz ];
-
-
\.(bin|rbf|tar.gz)$:- 这是一个正则表达式,用于匹配文件名的扩展名。
\.匹配点号.。(bin|rbf|tar.gz)是一个括号表达式,表示匹配bin、rbf或tar.gz中的任何一个。$表示字符串的结尾,确保匹配的是文件名的最后一个部分。
-
grep -oE '^[^=]+=.*\.(bin|tar.gz)' "$PATH/test.ini" > copy.txt
-o 选项表示只输出匹配的部分,而不是整行。
-E 选项表示使用扩展正则表达式(Extended Regular Expressions)。这样可以使用更复杂的正则表达式语法。
^[^=]+=.*\.(bin|rbf|tar.gz)'这是一个正则表达式,用于匹配特定模式的行。
^:表示行的开始。[^=]+:匹配一个或多个非等号=的字符。这部分用于匹配等号前面的部分。=:匹配等号=。.*:匹配任意数量的任意字符。这部分用于匹配等号后面的部分。\.(bin|rbf|tar.gz):匹配以.bin、.rbf或.tar.gz结尾的字符串。\.:匹配点号.。(bin|rbf|tar.gz):匹配bin、rbf或tar.gz。