首页 > 系统相关 >shell编程 不全

shell编程 不全

时间:2022-10-31 21:35:29浏览次数:44  
标签:shell image pc1 不全 echo etc && root 编程

shell 编程

>
>
>![image-20220331084804558](C:\Users\Windows\AppData\Roaming\Typora\typora-user-images\image-20220331084804558.png)
>
> 
>
>![image-20220331085011703](C:\Users\Windows\AppData\Roaming\Typora\typora-user-images\image-20220331085011703.png)
>
> [root@pc1 ~]# a=1
>	[root@pc1 ~]# [ $a -gt 2 ]&&echo 1
>	[root@pc1 ~]# 
>	[root@pc1 ~]# [ $a -gt 2 ]&&echo 1||echo 0
>	0
>	[root@pc1 ~]# [ $a -gt 2 ] && echo 1 || echo 0
>	0
>	[root@pc1 ~]# b=5
>	[root@pc1 ~]# [ $a -eq $b ] && echo 1 || echo 0
>	0
>	[root@pc1 ~]# [ $a -lt $b ] && echo 1 || echo 0
>	1
>
> 
>
> ![image-20220331090446830](C:\Users\Windows\AppData\Roaming\Typora\typora-user-images\image-20220331090446830.png)
>
> 
>
> ![image-20220331092720451](C:\Users\Windows\AppData\Roaming\Typora\typora-user-images\image-20220331092720451.png)
>
>​	
>
> 
>
>​	
>
>​	
>
>![image-20220331093110094](C:\Users\Windows\AppData\Roaming\Typora\typora-user-images\image-20220331093110094.png)
>
>​	
>
>​	
>
>​	

read 赋值给变量

>​	![image-20220331101809247](C:\Users\Windows\AppData\Roaming\Typora\typora-user-images\image-20220331101809247.png)

12.文件判断

>
>作用:判断是否存在,是否是目录,是否可写??
>[ -f /etc/hosts ] ##存在且为普通文件
>[ -d /etc ]      ##存在且为目录
>[ -e /etc ]       ##存在/etc这个东西
>[ -r /etc/hosts ] ##存在且可读
>[ -w /etc/hosts ] ##存在且可写
>
>两种语法:
>test -f /etc/hosts 等价[ -f /etc/hosts ]
>
>[root@pc1 ~]# cat /etc/hosts
>127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
>::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
>[root@pc1 ~]# [ -f /etc/hosts ] && echo 1 || echo 0
>1
>[root@pc1 ~]# [ -f /etc/host ] && echo 1 || echo 0
>0
>
>[root@pc1 ~]# [ -f ~/oldboy.log ] && rm -f ~/oldboy.log 
>
>[root@pc1 ~]# [ -d /etc ] && echo 1 || echo 0
>1
>[root@pc1 ~]# [ -d /etc1 ] && echo 1 || echo 0
>0
>查帮助man test
>
>6)配置shell编辑环境
>shell运行环境:
>	[root@pc1 ~]# rpm -qa bash
>	bash-4.2.46-34.el7.x86_64
>shell编辑环境:编辑程序环境
>    使用vim编辑
>	
>vim配置:
>vimrc-老男孩Shell编程实战书籍文件20170126 传到Linux里改名为.vimrc
>存放位置:~/.vimrc
>
>
>7)接收用户输入read
>[root@pc1 ~]# mkdir /server/scripts/ -p
>[root@pc1 ~]# cd /server/scripts
>
>[root@pc1 scripts]# tail -6 read01.sh
>read -p "请输入用户名:" user
>read -p "请输入用户密码:" pass
>
>#输出用户输入的内容
>echo "你的用户名是$user,密码是$pass"
>##定义的时候变量前不加$,使用的时候才加$。
>
>[root@pc1 scripts]# sh read01.sh
>请输入用户名:oldboy
>请输入用户密码:123
>你的用户名是oldboy,密码是123	

image-20220331105215510

image-20220331105541729

课堂作业

作业:成绩查询

cat > 1.sh <<EOF

!/bin/sh

echo "成绩查询"
read -p "请输入你要查询的成绩" a
if [ $a -ge 85 ] && [ $a -le 100 ]
then
echo "优秀"
elif [ $a -ge 60 ] && [ $a -lt 85 ]
then
echo "及格"
elif [ $a -lt 60 ]
then
echo "不及格"
else
echo "输入不合法"
fi
EOF

作业:成绩查询 (支持小数版):
cat >1.2.sh<<EOF

!/bin/sh

echo "成绩查询"
read -p "请输入你要查询的成绩:" a
if [ echo "$a >= 85 && $a <= 100" | bc -ge 1 ]
then
echo "优秀"
elif [ echo "$a >= 60 && $a < 85" | bc -ge 1 ]
then
echo "及格"
elif [ echo "$a < 0 " | bc -lt 1 ]
then
echo "输入不合法"
elif [ echo "$a < 60 && $a >= 0" | bc -ge 1 ]
then
echo "不及格"
else
echo "输入不合法"
fi
EOF

作业:打印菜单,根据菜单操作

cat >2.sh<<EOF

!/bin/sh

cat <<EOF
1.安装nginx
2.安装mariadb
3.退出菜单
EOF
read -p "选择:" a
if [ $a == 1 ] || [ $a == "安装nginx" ]
then
echo "安装nginx"
# yum install -y nginx
elif [ $a == 2 ] || [ $a == "安装mariadb" ]
then
echo "安装mariadb"
# yum install -y mariadb
elif [ $a == 3 ] || [ $a == "退出菜单" ]
then
echo "退出菜单"
exit
else
echo "请做出正确的选择"
exit
fi
EOF

作业:打印菜单,根据菜单操作(循环版)
cat >2.1.sh <<EOF
while true
do
cat <<'EOF'
1.安装nginx
2.安装mariadb
3.退出菜单
EOF
read -p "选择:" a
if [ $a == 1 ] || [ $a == "安装nginx" ]
then
echo "安装nginx"
yum install -y nginx
elif [ $a == 2 ] || [ $a == "安装mariadb" ]
then
echo "安装mariadb"

yum install -y mariadb

elif [ $a == 3 ] || [ $a == "退出菜单" ]
then
echo "正在退出菜单..."
sleep 1
exit
else
echo "请做出正确的选择"
fi
done
EOF

标签:shell,image,pc1,不全,echo,etc,&&,root,编程
From: https://www.cnblogs.com/951767619x/p/16845882.html

相关文章

  • PowerShell DSC由哪个进程运行?
    查询msft_providersGet-WmiObjectmsft_providers|selectprovider获得进程$dscProcessID=Get-WmiObjectmsft_providers|Where-Object{$_.provider-like'ds......
  • JUC并发编程
    多线程进阶——JUC并发编程准备工作新建一个maven项目。****检查准备环境。1.什么是JUCJava.util工具包。业务:普通的线程代码——Thread。Runnable:没有......
  • 学习笔记-无字母数字Webshell
    无字母数字Webshell相关文章&Source&Reference记一次拿webshell踩过的坑(如何用PHP编写一个不包含数字和字母的后门)一些不包含数字和字母的webshell无字母数字W......
  • Java 从入门到放弃12 - 《网络编程基础》
    网络编程基础为了把计算机接入互联网,就必须要使用TCP/IP协议。TCP/IP协议泛指互联网协议,其中最重要的两个就是TCP和IP协议,而使用其他网络协议都是无法接入互联网的IP地......
  • 面向对象编程
    1.对象Object对象的两个部分:属性、行为面向对象编程的三大特点:封装、继承、多态2.封装写程序的时候也可以采用封装的理念,对于一些内容我们不提供接口来使用它们,它们属......
  • shell脚本之函数
    函数定义函数格式一:function函数名{命令序列}格式二:函数名(){命令序列}#####main#####可以直接在主代码区直接使用函数名调用函数删除函数格式:unset 函......
  • shell脚本之循环语句
    一、echo命令–输出字符串或提取Shell变量的值1、格式2、常用参数 常用的转义字符如下:\b转义后相当于按退格键(backspace),但前提是"\b"后面存在字符;“\b"......
  • java进阶篇——Stream流编程
    Stream流函数式接口1.消费型接口——Consumer@FunctionalInterfacepublicinterfaceConsumer<T>{/***对给定的参数执行此操作。**@param......
  • 第四届全国大学生算法设计与编程挑战赛(秋季赛)正式赛题解
    没时间写题解了,随便写两笔吧,看不懂可以联系QQ160042137901(Easy)直接暴力枚举每个状态及其所有转移,时间复杂度\((T2^nn^2)\)。02(Easy)二分答案,用一个单调队列或者优先......
  • shell编程中的循环语句
    一、for循环 for循环的运作方式,是讲串行的元素意义取出,依序放入指定的变量中,然后重复执行含括的命令区域(在do和done之间),直到所有元素取尽为止。其中,串行是一些字符串的......