脚本宝典收集整理的这篇文章主要介绍了《信息安全系统设计与实现》第三周学习笔记,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
本章主要讲了sh脚本的相关知识,包括sh脚本的介绍,sh脚本与c程序的对比,如何编写sh脚本以及如何调用sh函数
sh 脚本是一个包含sh 语句的文本文件,命令解释程序sh要执行该语句。
#! /bin/bash
# comment line
echo hello
使用chmod +x mysh 使其可执行
在sh脚本中,可以通过位置参数$0、$1、$2等访问命令行参数。其中特殊字符$表示替换,如果需要使用$字符,需加上单引号或者反引号。
$#=命令行参数$1到$n的数量
$*=所有命令行参数,包括$0
$S=执行sh的进程PID
$?=最后一个命令执行的退出状态(成功为0,否则为非0)
.file:读取并执行文件。
break [n]:从最近的第n个嵌套循环中退出。
cd [dirname]: 更换目录。
continue[n]:重启最近的第n个嵌套循环。
eval [arg...]:计算一次参数并让sh执行生成的命令。
exec [arg...]:通过这个sh执行命令,sh将会退出。
exIT [n]:使sh退出,退出状态为n。
export [VAR…]:将变量导出到随后执行的命令.
read [var...]:从stdin 中读取一行并为变量赋值。
set [arg...]:在执行环境中设置变量。
shift:将位置参数$2 $3...重命名为 $1 $2...。
trap [arg] [n]:接收到信号n后执行参数。
umask [ddd]:将掩码设置为八进制数 ddd 的。
wait pid]: 等待进程 pid,如果没有给出pid,则等待所有活动子进程。
echo命令:将参数字符串作为行回显到stdout。
exPR命令:间接更改sh变量的值。
管道命令:作为过滤器。
实用命令:
axk:数据处理程序。
cmp:比较两个文件。
comm:选择两个排序文件共有的行。
grep:匹配一系列文件的模式。
diff:找出两个文件的差异。
join:通过使用相同的键来连接记录以比较两个文件。
sed:流或行编辑命令。
sort:排序或合并文件。
tail:打印某个文件的最后口行。
tr:一对一宇符翻译。
uniq:从文件中删除连续重复行。
sh支持多种控制语句,可类比c语言的语句。
C语言的if-else-if语句每个语句必须在单独的一行上,而sh允许多个语句在同一行上 语法格式:
if condition1
then
command1
elif condition2
then
command2
else
commandN
fi
语法格式:
for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done
命令行格式:
for var in item1 item2 ... itemN; do command1; command2… done;
while 循环用于不断执行一系列命令,也用于从输入文件中读取数据。 语法格式:
while condition
do
command
Done
until 循环执行一系列命令直至条件为 true 时停止。 until 循环与 while 循环在处理方式上刚好相反。一般 while 循环优于 until 循环,但在某些时候—也只是极少数情况下,until 循环更加有用。
语法格式:
until condition
do
command
done
case为多选择语句,与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构,每个 case 分支用右圆括号开始,用两个分号 ;; 表示 break,即执行结束,跳出整个 case ... esac 语句,esac(就是 case 反过来)作为结束标记。 可以用 case 语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。
语法格式如下:
case 值 in
模式1)
command1
command2
...
commandN
;;
模式2)
command1
command2
...
commandN
;;
esac
break命令允许跳出所有循环(终止执行后面的所有循环)。
continue命令不会跳出所有循环,仅仅跳出当前循环。
>file:stdout转向文件,如果文件不存在,将会创建文件。
>>file:stdout追加到文件。
<file:将文件用作stdin;文件必须存在并具有r权限。
<<word:从“here”文件中获取输入,直到只包含“word”的行。
func()
{
# function code
}
由于sh逐行执行命令,所以必须在任何可执行语句之前定义sh脚本中的所有函数。而在sh函数中无法声明函数原型。
星号(*)通配符:可扩展到当前目录中的所有文件。
?通配符:查询某文件名中的字符。
[]通配符:查询文件名中一对[]中的字符。
sh脚本由带有-x选项的子sh运行以进行调试。
eg:bash -x mysh
子sh将在执行命令之前显示要执行的每个sh命令,包括变量和命令替换。它允许用户跟踪命令执行。如果出现错误,sh将在错误行上停止并显示错误消息。
参考链接:https://www.runoob.COM/w3cnote/shell-scripting.htML
以上是脚本宝典为你收集整理的《信息安全系统设计与实现》第三周学习笔记全部内容,希望文章能够帮你解决《信息安全系统设计与实现》第三周学习笔记所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。