兆兆嘟嘟嘟
2023-12-30 03:59 deepin
后面部分在Kali下运行?
Reply Like 0 View the author
后面部分在Kali下运行?
后面部分在Kali下运行?
当时写的时候因为是通过ssh连接deepin写的,在Windows终端上也连接了kali,可能写的时候选错终端栏了
后面部分在Kali下运行?
kali和deepin都是基于Debian开发的,能直接在deepin上运行的,shell编程本质就是通用的,一种命令行编程语言,所以系统影响不大,我在centos、kylin、Raspberry上一样能运行
kali和deepin都是基于Debian开发的,能直接在deepin上运行的,shell编程本质就是通用的,一种命令行编程语言,所以系统影响不大,我在centos、kylin、Raspberry上一样能运行
当然有些细节上可能不太一样,因为大多是Linux都是BASH、kali是ZSH,大部分情况都是通用的,你可以试一试,同样的代码在不同的Linux上面运行,基本上是能够完全运行的,但是调用BASH的时候可能不行,因为不同的Linux有点区别嘛
Popular Events
More
循环
7.1 for语句
与其他的编程语言一样,shell编程也支持循环语句。
语法
第二种语法当然也可以直接在list后面加上一个;直接接上do。
例
读取列表里的复杂值
sh源码
发现他无法识别引号。它会把引号包括的内容和前后的字符进行输出。只有使用转义符\或者双引号来定义单引号的都内容。
修改后如下:
从变量中读取值
从命令中读取列表的值
更改字段分隔符
若要修改空格、制表符、换行符作为shell的字段分隔符,就必须要用到IFS,IFS是特殊的环境变量,用来定义内部字段的分隔符。如果只想让换行符作为为能够识别的分隔符只需要把\n加入IFS中即可。
例
通配符读取目录
使用for循环来遍历目录,利用通配符的特点来实现。
7.2 C风格的for语句
语法
注意:
例
多变量循环
7.3 while语句
**while命令在某种程度上糅合了if-then语句和for循环。while命令允许定义一个要测试的命令,只要该命令****返回的退出状态码为0,就循环执行一组命令。它会在每次迭代开始时测试test命令,如果test命令返回非0退出状态码,while命令就会停止执行循环。**一直为0就是死循环。
语法
例
多个测试命令
while命令允许在while语句行定义多个测试命令。只有最后一个测试命令的退出状态码会被用于决定是否结束循环。
以上表明当在含有多个命令的while语句中,每次迭代都会被执行,包括最后一个执行命令失败的末次迭代。
7.4 untile
与while命令工作的方式完全相反,until命令要求指定一个返回非0退出状态码的测试命令。只要测试命令的退出状态码不为0,bash shell就会执行循环中列出的命令。一旦测试命令返回了退出状态码0,循环就结束了。
例
与while语句一样,until语句多命令的时候每次迭代都会被执行,包括最后一个执行命令失败的末次迭代。
7.5 嵌套循环与文件数据
嵌套循环
循环的时候嵌套其他的语句就是嵌套循环,until与while也是可以嵌套在一起的。
例
until与while循环嵌套
处理数据
遍历文件中保存的数据,利用iFS和循环嵌套来实现。通过修改IFS环境变量,能强制for命令将文件中的每一行都作为单独的条目来处理,即便数据中有空格也是如此。从文件中提取出单独的行后,可能还得使用循环来提取行中的数据。
例
7.6 循环控制
使用break和continue可以直接退出循环。
二者的区别就是break是直接跳出循环(内、外、单个),而continue是跳出某次循环。
例
break结束外层循环语法
continue语法
处理用户输入
参数传递与参数读取
bash shell会将所有的命令行的参数指向位置参数。
什么是位置参数,$0对应的是脚本名字,一次类推到9.
例
字符串也是可以传递进去的
8.1 读取脚本名
使用位置变量$0获取命令行中运行的shell脚本名。
8.2 统计参数
使用$#可以统计参数
例
8.3 获取所有的数据
$加上*或@可以轻松访问所有参数。
例
两者的区别