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