语法

文件 -- 文件后缀已`.sh`结尾。并且创建后,需要添加可执行权限。使用`chmod +x`指令添加。 ``` chmod +x file path ``` 首行 -- `#!/bin/bash` 首行必须以上面代码点开头,表示当前脚本以/bin/bash来解释,否则执行会报错。 $()与`` -- 在bash中,$( )与\` `(反引号)都是用来作命令替换的。 命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行。 \$( )与`` 在操作上,这两者都是达到相应的效果,但是建议使用\$( ),理由如下: ``很容易与''搞混乱,尤其对初学者来说,而\$( )比较直观。 最后,$( )的弊端是,并不是所有的类unix系统都支持这种方式,但反引号是肯定支持的。 grep -- grep的全称是global regular expression print,是linux中最强大的文本搜索命令之一,常用于搜索文本文件中是否含有某些特定模式的字符串。该命令以行为单位读取文本并使用正则表达式进行匹配,匹配成功后打印出该行文本。 命令格式 `grep [option] "string_to_find" filename` 常见选项: (1)-i:忽略搜索字符串的大小写 (2)-v:取反,即输出不匹配的那些文本行 (3)-n:输出行号 (4)-l:输出能够匹配模式的文件名,相反的选项为-L (5)-q:静默输出 选项是可选的,根据实际需求进行选择即可 string_to_find为需要匹配的模式,可以填写字符串或者正则表达式 filename为需要查找的文件的名称 变量 -- 定义变量时,不用加$符号,直接`变量名=值`就可以。如: ``` your_name="mark" ``` 注意,声明变量时,“=”两边不能有空格。同时,变量名的命名需要遵循以下规则: 1.命名只能使用英文字母、数字和下划线,首字符不能以数字开头。 2.中间不能有空格,可以使用下划线。 3.不能使用标点符号。 4.不能使用bash关键词,可以使用help命令查询。 使用变量时,在前面加$符即可,如:`$your_name`或`${your_name}`,**一般情况下两者没有区别,但是\${ }可以比较精确的界定变量名称的范围。** if -- ``` if [ condition ] then 符合该条件执行的语句 fi ``` if '['和']'两次都要加空格。 如果`if`和`then`很在同一行则需要分号隔开。 if...else -- ``` if [ condition ] then 符合该条件执行的语句 elif 符合该条件执行的语句 fi ``` if else if -- ``` if [ condition ] then 符合该条件执行的语句 elif 符合该条件执行的语句 else 符合该条件执行的语句 fi ``` 常规文件/目录判断请自行百度。 MongoDB操作符 -- 在shell中操作MongoDB时,若用查询语句中使用到逻辑或其他操作符时,需要再操作符前加转移字符`\`