网站运营维护中需要用到什么服务器,网站手机网站怎么建立,国家建设工程网官方网站,看手表网站shell编程#xff08;完结#xff09;
声明#xff01;
学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下#xff0c;如涉及侵权马上删除文章
笔记只是方便各位师傅的学习和探讨#xff0c;文章所提到的网站以及内容#xff0c;只做学习交流#xff0c;其…shell编程完结
声明
学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下如涉及侵权马上删除文章
笔记只是方便各位师傅的学习和探讨文章所提到的网站以及内容只做学习交流其他均与本人以及泷羽sec团队无关切勿触碰法律底线否则后果自负
有兴趣的小伙伴可以点击下面连接进入b站主页**B站泷羽sec**
1、不同脚本的互相调用
先给1.sh写入以下代码
#/bin/bash
source 2.sh
echo My name is $name,and i am $age years old.再为2.sh写入以下代码
namefengyijiu
age18然后执行1.sh就会输出
2、重定向
如果我们使用ls 1.txt则会执行ls命令并将查到的信息重定向到1.txt文件中。
但是这种重定向会覆盖掉1.txt文件原本的内容如果我们需要将数据追加至1.txt文件而不是覆盖则使用来实现具体例子如下
/dev/null是一个特殊的文件被称为“空设备”或“空设备文件”。这个文件会丢弃所有写入到它的数据就好像一个黑洞一样。当你读取/dev/null时它立即返回一个文件结束EOF标记。 在命令行操作中/dev/null常常被用来丢弃不需要的输出。例如如果你运行一个命令但是并不关心这个命令的输出你就可以将输出重定向到/dev/null这样命令的输出就会被丢弃不会显示在终端或者写入到其他文件。
我们在1.sh中写入以下命令
#/bin/bashtouch 2.txt
echo hello world! 2.txt# 创建一个2.txt文件并将hello world!写入到2.txt文件中然后我们执行一下1.sh我们可以发现脚本执行了但是没有任何回显
文件描述符
0标准输入
1标准输出
2错误输出
当我们需要将执行成功的输出存放到一个文件将执行失败的输出存放到另一个文件中我们可以利用文件描述符来进行该操作使得我们能够准确获取需要的信息比如报错信息能让我们准确的定位到出现的问题上。
制作一个计算器
通过之前的shell脚本学习我们可以做出一个简易的计算器
#!/bin/bash# 显示菜单
echo 选择操作
echo 1. 加法
echo 2. 减法
echo 3. 乘法
echo 4. 除法
echo 5. 退出# 读取用户选择
read -p 输入选择1/2/3/4/5 optioncase $option in
1) echo 输入第一个数字read num1echo 输入第二个数字read num2echo 结果是$((num1 num2));;
2) echo 输入第一个数字read num1echo 输入第二个数字read num2echo 结果是$((num1 - num2));;
3) echo 输入第一个数字read num1echo 输入第二个数字read num2echo 结果是$((num1 * num2));;
4) echo 输入第一个数字read num1echo 输入第二个数字read num2if [ $num2 -eq 0 ]; thenecho 除数不能为0。elseecho 结果是$((num1 / num2))fi;;
5) echo 退出程序。exit 0;;
*) echo 非法输入。;;
esac
但是这种写法有个小缺陷就是不能输入非整数否则会报错
如果要解决无法输入小数的问题需要安装bc工具
sudo apt-get update
sudo apt-get install bc安装之后可以借助该工具来实现小数的加减乘除
#!/bin/bash# 显示菜单
echo 选择操作
echo 1. 加法
echo 2. 减法
echo 3. 乘法
echo 4. 除法
echo 5. 退出# 读取用户选择
read -p 输入选择1/2/3/4/5 optioncase $option in
1) echo 输入第一个数字read num1echo 输入第二个数字read num2echo 结果是$(awk BEGIN {print $num1 $num2});;
2) echo 输入第一个数字read num1echo 输入第二个数字read num2echo 结果是$(awk BEGIN {print $num1 - $num2});;
3) echo 输入第一个数字read num1echo 输入第二个数字read num2echo 结果是$(awk BEGIN {print $num1 * $num2});;
4) echo 输入第一个数字read num1echo 输入第二个数字read num2if [ $num2 -eq 0 ]; thenecho 除数不能为0。elseecho 结果是$(awk BEGIN {print $num1 / $num2})fi;;
5) echo 退出程序。exit 0;;
*) echo 非法输入。;;
esac