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文件夹
:::
:::
:::