语法
文件
--
文件后缀已`.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时,若用查询语句中使用到逻辑或其他操作符时,需要再操作符前加转移字符`\`