1.查找某文件是否存在(某文件名以参数形式传递),如果文件存在,则修改文件权限为用户主可读写,其他用户无任何权限,否则返回文件不存在!
#!/bin/bash
#脚本功能为:查找某文件是否存在(以参数形式),若存在,则将其权限设置为用户主可读可改,其他人无任何权限。否则则返回无此文件的信息
if [ -e $1 ]
then
chmod 600 $1
echo "$1 权限已设置为用户主可读可改,其他人无任何权限"
else
echo "$1 文件不存在!"
fi
2.输入一个年份,判断此年份是否为闰年?
闰年(能被4整除却不能被100整除或能被400整除的年份就是闰年!)
#!/bin/bash
#脚本功能为输入一个年份,判断此年份是否为闰年?闰年(能被4整除却不能被100整除或能被400整除的年份就是闰年!)
read -p "please input a year:" year
let "leap=$year%4==0&&$year%100!=0 || year%400==0"
if [ $leap -eq 0 ]
then
echo "$year 不是闰年!"
else
echo "$year 是闰年!"
fi
3.输入一个大于0的整数,计算从0到这个数的和
#!/bin/bash
#脚本功能为输入一个大于0的整数,计算从0到这个数的和
read -p "please input a number:" number
sum=0
int=1
for ((;int<=number;int++))
do
let "sum=sum+int"
done
#while(( $int<=$number ))
#do
# let "sum=sum+int"
# let "int++"
#done
echo "从 0 到 $number 的和为: $sum"
4.测试 192.168.1.* 整个网段中哪些主机处于开机状态,哪些主机处于关机状态
IP地址最后一位的有效范围是1~254。实际范围为0~255,但0、255都是系统保留的,不能作为“有效”ip使用。其中0是保留的表示网络的,而255是当前网络的广播地址,故ip最后一位的范围是1~254。
#!/bin/bash
for i in {1..254} #"..表示连续"
do
ping -c 2 -i 0.3 -W 1 192.168.1.$i &>>/home/Ubuntu/桌面/log.txt
if [ $? -eq 0 ]
then
echo "192.168.1.$i is up"
else
echo "192.168.1.$i is down"
fi
done
5.查找给定的用户是否在系统中工作(以参数形式传递),如果在则输出当天日期,再打印hello,否则打印waiting
#!/bin/bash
who | grep "^$1" >/dev/null
a=$?
if [ $a -eq 0 ] #if who | grep "^$1"
then
date
echo "hello,$1"
else
echo "waiting ..."
fi
6.编写脚本,CP文件并显示进度条
#!/bin/bash
# 编写脚本,cp文件,显示进度条
jindutiao(){
while :
do
echo -n '#'
sleep 0.2
done
}
jindutiao &
#echo "********* $0 $! $$ ***********"
cp -a $1 $2
echo ""
echo "拷贝完成"
#killall $0 会提示找不到进程
#kill $$ jindutiao & 还在后台执行,会一直输出‘#’
kill $!
7.编写脚本,持续ping某一个ip地址并打印时间戳,然后将输出的内容保存到日志文件
#!/bin/bash
while [ true ]
do
echo "_________________________________________" >> /data/pingQX_log.txt
date >> /data/pingQX_log.txt
ping -c 2 39.107.207.235 >> /data/pingQX_log.txt
echo "" >> /data/pingQX_log.txt
echo "" >> /data/pingQX_log.txt
echo "" >> /data/pingQX_log.txt
sleep 1
done