shell脚本编程练习
转至:http://www.178linux.com/88406
1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态
在线的主机使用绿色显示
不在线的主使用红色显示
#!/bin/bash
#
for i in {1..254};do
if ping -c 6 -w 1 192.168.1.$i &> /dev/null;then
echo -e “\033[32m 192.168.1.$i \033[0m is up”
else
echo -e “\033[31m 192.168.1.$i \033[0m is down”
fi
done
2、如何给网络接口配置多个地址,有哪些方式?
- a) 使用ifconfig命令
例如 ifconfig eno16777736:0 192.168.0.100/24
- b) 使用Ip addr命令
例如 ip addr add 192.168.0.101/24 dev eno16777736
- c) 通过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE来识别接口并完成配置;
- d) 使用nmtui命令
3、写一个脚本,完成以下功能
(1) 假设某目录(/etc/rc.d/rc3.d/)下分别有K开头的文件和S开头的文件若干
(2) 显示所有以K开头的文件的文件名,并且给其附加一个stop字符串
(3) 显示所有以S开头的文件的文件名,并且给其附加一个start字符串
(4) 分别统计S开头和K开头的文件各有多少
#!/bin/bash
#
declare -i n=0
declare -i m=0
for i in $(ls /etc/rc.d/rc3.d); do
if [ $(echo $i | cut -c 1) == “K” ]; then
echo “$i stop”
let n++
elif [ $(echo $i | cut -c 1) == “S” ]; then
echo “$i start”
let m++
fi
done
echo “K is $n S is $m.”
4、写一个脚本,完成以下功能
(1) 脚本能接受用户名作为参数
(2) 计算此些用户的ID之和
#!/bin/bash
#
declare -i sum=0
for i in $@; do
if ! id $i &> /dev/null; then
echo “$i is not user”
else
let sum=$sum+$(id -u $i)
fi
done
echo “uid sum = $sum”
5、写一个脚本
(1) 传递一些目录给此脚本
(2) 逐个显示每个目录的所有一级文件或子目录的内容类型
(3) 统计一共有多少个目录;且一共显示了多少个文件的内容类型
#!/bin/bash
#
declare -i m=0
declare -i n=0
for i in $@;do
if [ -d $i ];then
for x in $i/*;do
echo $x
let m++
if [ -d $x ];then
echo $x
let n++
fi
done
else
echo “$i is not a dir or not file”
fi
done
echo ” dir = $n file = $m ”
6、写一个脚本
通过命令行传递一个参数给脚本,参数为用户名
如果用户的id号大于等于500,则显示此用户为普通用户
#!/bin/bash
#
uname=$1
if id $uname &> /dev/null ;then
if [ $(id -u $uname) -ge 500 ];then
echo “this is a normal user”
else
echo “Not an ordinary user”
fi
else
echo “not a user”
fi
7、写一脚本,用ping命令测试172.16.250.20-172.16.250.100以内有哪些主机在线,将在线的显示出来
#!/bin/bash
#
for i in {20..100};do
if ping -c 1 172.16.250.$i &> /dev/null;then
echo “172.16.250.$i is online”
fi
done
8、打印九九乘法表
#!/bin/bash
#
for i in ‘seq 1 9’;do
for j in ‘seq 1 $i’;do
echo -n -e “${j}X${i}=$[$j*$i]\t”
done
echo
done
shell脚本编程练习的更多相关文章
- Shell脚本编程30分钟入门
Shell脚本编程30分钟入门 转载地址: Shell脚本编程30分钟入门 什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_t ...
- Linux shell脚本编程(三)
Linux shell脚本编程 流程控制: 循环语句:for,while,until while循环: while CONDITION; do 循环体 done 进入条件:当CONDITION为“真” ...
- Linux shell脚本编程(二)
Linux shell脚本编程(二) 练习:求100以内所有偶数之和; 使用至少三种方法实现; 示例1: #!/bin/bash # declare -i sum=0 #声明一个变量求和,初始值为0 ...
- Linux shell脚本编程(一)
Linux shell脚本编程: 守护进程,服务进程:启动?开机时自动启动: 交互式进程:shell应用程序 广义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令 ...
- Linux shell脚本编程基础之练习篇
shell脚本编程基础之练习篇. 1.编写一个脚本使我们在写一个脚本时自动生成”#!/bin/bash”这一行和注释信息. #!/bin/bash ] then echo "请输入一个参数& ...
- 【Linux】Shell脚本编程(一)
Linux shell脚本编程: 守护进程,服务进程:启动?开机时自动启动: 交互式进程:shell应用程序 广义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令 ...
- 学习笔记之Linux Shell脚本教程:30分钟玩转Shell脚本编程
Linux Shell脚本教程:30分钟玩转Shell脚本编程 http://c.biancheng.net/cpp/shell/
- Shell脚本编程总结及速查手册
Shell是一种编程语言, 它像其它编程语言如: C, Java, Python等一样也有变量/函数/运算符/if语句/循环控制/… 但在开始之前, 我想先理清Shell语言与Shell之间的关系. ...
- 关于shell脚本编程的10个最佳实践
每一个在UNIX/Linux上工作的程序员可能都擅长shell脚本编程.但大家解决问题的方式却不尽相同,这要取决于对专业知识的掌握程度.使 用命令的种类.看待问题的方式等等.对于那些处在shell脚本 ...
- 《Linux命令行与shell脚本编程大全》 第二十七章 学习笔记
第二十七章:shell脚本编程进阶 监测系统统计数据 系统快照报告 1.运行时间 uptime命令会提供以下基本信息: 当前时间 系统运行的天数,小时数,分钟数 当前登录到系统的用户数 1分钟,5分钟 ...
随机推荐
- golang中值类型的嵌入式字段和指针类型的嵌入式字段
总结: 1. 值类型的嵌入式字段,该类型拥有值类型的方法集,没有值指针类型的方法集 2. 指针类型的嵌入式字段,该类型拥有值指针类型的方法集,没有值类型的方法集,并且,该类型的指针类型也有值指针类型的 ...
- Gc如何判断对象可以被回收?
Gc如何判断对象可以被回收? 1 引用计数器 引用计数法的算法思路:给对象增加一个引用计数器,每当对象增加一个引用计数器+1,失去一个引用-1,所以当计数器是0的时候对象就没有引用了,就会被认为可回收 ...
- 一劳永逸,解决.NET发布云服务器的时区问题
国内大多数开发者使用的电脑,都是使用的北京时间,日常开发的过程中其实并没有什么不便:不过,等遇到了阿里云等云服务器,系统默认使用的时间大多为UTC时间,这个时候,时区和时间的问题,就是不容忽视的大问题 ...
- python06day
Now代码1005行 回顾 字典的初识 查询速度快,{'name':'tangdaren'},存储大量关联型数据 键:int.str(bool tuple不常用)不可变的数据类型 值:任意数据类型 3 ...
- SpringBoot+Minio搭建不再爆肝秃头的分布式文件服务器
前言 1).有人一定会问,为什么不用FastDFS?众所周知,FastDFS的原生安装非常复杂,有过安装经验的人大体都明白,虽然可以利用别人做好的docker直接安装,但真正使用过程中也可能出现许多莫 ...
- window-server 服务器解决远程连接
mstsc 连接远程服务器,出现黑屏的情况: 解决方案: 运行 -> 输入gpedit.msc,进入组策略 -> 计算机配置 -> 管理模板 -> Windows组件 -> ...
- STC8H开发(九): STC8H8K64U模拟USB HID外设
目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) ST ...
- 有向图子图 DAG 数量
考虑 \(\tt DP\),朴素的想法是令 \(f_S\) 表示 \(S\) 这个导出子图将边定向集合构成 \(\tt DAG\) 的方案数. 转移可以考虑剥去所有入度为 \(0\) 的点,那么我们就 ...
- httpclient源码分析之 PoolingHttpClientConnectionManager 获取连接 (转)
PoolingHttpClientConnectionManager是一个HttpClientConnection的连接池,可以为多线程提供并发请求服务.主要作用就是分配连接,回收连接等.同一个rou ...
- linux中vim编辑器三种模式及常用命令的使用
Linux命令经常使用才会烂熟于心 命令行模式: 移动光标: 向下左右箭头可以移动光标: 将光标移动到行尾:$; 将光标移动到行头:^: 将光标移动到页尾:shift+g; 将光标移动到页头:1+sh ...