Linux Shell脚本经典案例(三)

本文介绍了多个Linux Shell脚本的实战应用,包括从FTP服务器下载文件、输入数字的统计、变量赋值、批量修改文件名、文件大小统计、端口扫描、SSH交互式命令执行、批量修改用户密码、打印乘法口诀以及使用getopts处理命令行参数。通过这些案例,读者可以提升在Linux环境中使用Shell脚本解决问题的能力。
摘要由CSDN通过智能技术生成

1 从FTP服务器下载文件

#!/bin/bash
if [ $# -ne 1 ] ; then
    echo "Usage: $0 filename"
fi
dir = $(dirname $1)
file = $(basename $1)
ftp -n -v << EOF    # -n 自动登录
open 192.168.1.1  # ftp 服务器
user admin password
binary #设置ftp传输模式为二进制,避免MD5值不同或.tar.gz压缩包格式错误
cd $dir
get "$file"
EOF

2 连续输入5个100以内的数字,统计和、最小和最大

#!/bin/bash
COUNT = 1
SUM = 0
MIN = 0
MAX = 0
while [ $COUNT -le 5 ];do
    read -p "请输入1-10个整数:" INT
    if [[  ! $INT =~ ^[0-9]+$  ]]; then
        echo "输入必须是整数" 
        exit 1
    elif [[  $INT -gt 100  ]]; then
        echo "输入必须是100以内"
        exit 1 
    fi
    SUM = $($SUM+$INT)
    [  $MIN -lt $INT  ]  && MIN = $INT
    [  $MAX -gt $INT  ] && MAX = $INT
    let COUNT++
done
echo "SUM:$SUM"
echo "MIN: $MIN"
echo "MAX:$MAX"

3 将结果分别赋值给变量
应用场景,希望将执行结果或者位置参数赋值给变量,以便后续使用
方法一

for i in $(echo "4 5 6");do
    eval a$i = $i
done
echo $a4 $a5 $a6

方法二:将位置参数192.168.1.1{1,2}拆分为到每个变量

num = 0 
for i in $(eval echo $*);do
    let num+=1
    eval node${num}="$i"
done
echo $node1 $node2 $node3

#bash a.sh 192.168.1.1{1,2}
192.168.1.11 192.168.1.12

方法三

arr = (4 5 6)
INDEX1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值