shell
::: {.container}
::: {.post}
::: {.show-content}
shell 接下来继续学习bash脚本
read命令,接受用户输入,有点类似python里 raw_input()函数。
::: {.image-package}
\
::: {.image-caption}
:::
:::
::: {.image-package}
\
::: {.image-caption}
脚本执行结果
:::
:::
由于不同操作系统路径可能不一样,将绝对路径写入脚本,使得脚本有更好的适应性。
read -p(prompt)
是提示的意思,字符串里的是提示,后面的是变量名。${firstname}是取变量名的内容意思。
echo -e,这个参数是处理特殊字符的意思,字符串里有 \n 换行符,所以不会将
\n输出到屏幕上,而是执行换行。
[ ]
判断符号,中括号里面的字符左右都需要有空格,因为Linux里,该符号除了判断,还有其他含义,为了不混淆,所以记得加空格。
::: {.image-package}
\
::: {.image-caption}
:::
:::
#sh yes_no.sh 运行结果如下
Please input (Y/N): y
OK, continue#sh yes_no.sh
Please input(Y/N):n
oh,interrup!
-o(or)连接两个判断,yn变量等于Y或等于y,那么输出ok,continue,并结束程序
&& 代表and
|| 代表or
条件判断 if…… then……
这个语句很简单就不举例子了,if 后面接条件,满足就执行 then 后面的语句。
如果不满足条件呢?
if …… ;then ……
else……
fi
else语句接,不满足条件后执行的语句
fi是if的倒写,表示条件语句over了。
如果是多项条件判断:elif…… ;then…… 加在if-then 语句之后。
条件判断while […… ] do…… done……
经过上面的程序示范,应该很容易就能看懂下面的shell
script,当输入的变量yn不等于yes或YES,就一直循环提示的字符串"please
input …… "
::: {.image-package}
\
::: {.image-caption}
:::
:::
固定次数循环 for…… do…… done
for后面是变量$animal,第一次循环,$animal = dog,第二次循环,$animal
= cat
::: {.image-package}
\
::: {.image-caption}
:::
:::
::: {.image-package}
\
::: {.image-caption}
:::
:::
案例一:将经常要运行的命令写入。
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
chmod +x burp.sh
./burp.sh
案例二:用选择功能,简化每次输入的命令。
::: {.image-package}
{.uploaded-img
width=”auto” height=”auto”}\
::: {.image-caption}
:::
:::
总结,1.变量要用$ { }标识
2.每一个特定符号要用引号括起来。
3.if 语句要用[ ]括起来,然后需要两侧加空格。
4.cd转换路径,路径左侧不能加/,如cd /tool
(错误),”/tool”表示根目录下的tool文件夹
:::
:::
:::