1、编写脚本实现登陆远程主机。

用expect的方式:

#!/usr/bin/expect
spawn ssh 192.168.88.8
expect {
"yes/no" {send "yes\n" }
"password:" {send "555666\n"}
}
interact

用shell方式(标准输入):

#!/bin/bash
ip=192.168.88.8
user=root
password=555666
expect<<EOF
spawn ssh $user@$ip
expect {
"yes/no" {send "yes\n" }
"password:" {send "555666\n"}
}
expect eof
EOF

2、生成10个随机数保存于数组中,并找出其最大值和最小值

#!/bin/bash
arr=($RANDOM $RANDOM $RANDOM  $RANDOM $RANDOM $RANDOM $RANDOM $RANDOM $RANDOM $RANDOM )
declare -i min=max=${arr[0]}
for ((i=1;i<10;i++));do
   [ ${arr[$i]} -gt $max ] && max=${arr[$i]} && continue
   [  ${arr[$i]} -lt $min ] &&  min=${arr[$i]}

done
echo '所有数字为:'${arr[*]}
echo '最大值为:'$max
echo '最小值为:'$min

3、输入若干个数值存入数组中,采用冒泡算法进行升序或降序排序

#!/bin/bash
arr=( 45 34 16 76 52 )
echo '初始数组'${arr[*]}
for ((i=1;i<${#arr[*]};i++));do

        for ((j=0;j<${#arr[*]}-$i;j++));do
        if [ ${arr[j]} -gt ${arr[j+1]} ];then
            tmp=${arr[j]}
            arr[$j]=${arr[j+1]}
            arr[$j+1]=$tmp
        fi
        done
done

echo '冒泡排序结束'${arr[*]}

4、编写脚本,使用for和while分别实现192.168.0.0/24网段内,地址是否能够ping通,若ping通则输出"success!",若ping不通则输出"fail!"

ip=192.168.88.
#for i in {1..254}
#do
#   { ping -c1 -w1  $ip$i &>/dev/null; [ $? -eq 0 ] && echo 'success!' || echo 'fail'; } &
#done
#wait
i=1
while (( i<255 )) ;do
        { ping -c1 -w1  $ip$i &>/dev/null; [ $? -eq 0 ] && echo 'success!' || echo 'fail'; } &
        let i++;
done
wait

5、每周的工作日1:30,将/etc备份至/backup目录中,保存的文件名称格式 为“etcbak-yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的时间

#!/bin/bash
[ -d /backup ] || mkdir /backup
tar Jcf /backup/etcback-`date +%F-%_H`.tar.xz /etc &> /dev/null
[ $? -eq 0 ] && echo '备份成功' || echo '备份失败'