Shell 实践、常用脚本
2024-09-21 12:54:28
(1)计算1-100的和。
#!/bin/bash
n=
for i in `seq `
do
n=$[$i+$n]
done
echo $n
(2)输一个数字,然后计算出1到数字的和,要求如果输入数字小于1,则重新输入,知道输入正确为止。
n='abc' if_num1() {
m=`echo $|sed 's/[0-9]//g'`
if [ -z $m ] && [ $n -gt ]
then
return
else
return
fi
} while ! if_num1 $n
do
read -p "num: " n
done
a= for i in `seq $n`
do
a=$[$n+$i]
done
echo $a
(3)把root目录下所有目录(只需要一级)拷贝到/tmp/目录下。
cd /root/
for i in `ls `
do
if [ -f $i ]
then
cp -rv $i /tmp/
fi
done
find /root/ -maxdepth –type d
(4)批量建立用户user_00,user_01..,user_100并且所有用户属于users组。
for i in `seq -w |sed 's/^0//g'`
do
useradd -g users user_$i
done
seq –f “%02q”
(5)截取文件x.txt中包含关键字,‘root’的行钟的第二列用“:”号分割然后把截取的数字排序,然后打印出次数超过10次的列。
#!/bin/bash
a_1=`cat /xiangsikai/li/.txt | grep root |uniq -c|awk '$1>10'`
echo "$a_1"
(6)输入一个IP不能大于255。不能小于0。
#!/bin/bash
checkip() {
if echo $ | egrep -q '^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$' ;then
a=`echo $ | awk -F. '{print $1}'`
b=`echo $ | awk -F. '{print $2}'`
c=`echo $ | awk -F. '{print $3}'`
d=`echo $ | awk -F. '{print $4}'` for n in $a $b $c $d;do
if [ $n -ge ] || [ $n -le ];then
echo "no of zhe IP >255"
return
fi
done
else
echo "no no no !!! 192.168.1.1"
return
fi
} rs=
while [ $rs -gt ];do
read -p "IP: " ip
checkip $ip
rs=`echo $?`
done
echo "IP is right!"
(7).写一个脚本实现把一个目录下所有文件(不包括目录)全部在文件后面加一个.bak。
命令:cd /xiangsikai/li/ for i in `ls`
do
if [ -f $i ];then
mv $i $i.bak
fi
done
注:还可以用 find /xiangsikai/li/ -type f
(8)写一个文件将当前目录下大于100k的文件移动到目录下。
#!/bin/bash
for i in `find /xiangsikai/li/ -type f -size +10k`
do
mv $i /xiangsikai/shell/ti/
done
(9)写一个脚本获取本机的HOSTNAME,IP,DNS。
#!/bin/bash
host=`hostname`
echo "HOSTNAME:$host" ip_1=`ifconfig eth0 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'`
echo "eth0:$ip_1" dns=`cat /etc/resolv.conf | grep "name" |awk '{print $2}'`
echo "DNS:$dns"
(10)写两个脚本验证break和continue再循环中的作用。
for i in `seq `
echo $i
do
if [ $i -eq ]
then
break
fi
echo $i
done
注:break改为continue。
最新文章
- 【Linux】虚拟机安装Archlinux
- Hibernate核心技术简介
- HDU 3342 Legal or Not(判断是否存在环)
- ADF_Desktop Integration系列3_ADF桌面集成入门之重定义ADF Desktop Excel
- SHELL 八大扩展
- quartz定时任务框架的使用
- ECSHOP在线手册之模板结构说明 (适用版本v2.7.3)
- Unity: How to build and debug external DLLs
- 磁盘性能指标--IOPS 理论
- Windows Azure 成为业内首家被授权为 FedRAMP JAB P-ATO 的供应商
- js监听事件 上滑消失下滑出现的效果 触摸与手势事件
- 两端对齐justify
- uva10003 区间DP
- 实时流式计算框架——JStorm
- jmeter系列-如何实现像loadrunner一样,多个并发用户先通过登录初始化,然后做并发的接口性能压测
- 整型 布尔值 字符串 for循环
- RESTful API格式 图片验证码接口
- resotreIpAddress
- 洛谷P2563 [AHOI2001]质数和分解
- 那些年我读过的Blog(Ⅰ)
热门文章
- MSVCP110.DLL没有被指定在WINDOWS上运行
- ux.form.field.Month 只能选年、月的时间扩展
- [原]shell批量文件增删改前后缀
- vue的单向数据流
- javascript的数组之filter()
- IFrame标签的两个用法介绍
- java+tomcat开发环境搭建
- 15.1-uC/OS-III资源管理(锁调度器)
- 6、Flutter Error waiting for a debug connection: ProcessException: adb did not report f(转)
- python自动类型转换(针对于Number数据类型来的)精度从低到高 bool->;int->; float->;complex 当两个不同是数据类型运算时候,默认想更高进度转化