脚本参数交互与for语句循环
1.脚本参数交互
$n $1 $2 … $(10) $(11) … //传参,通过这些传参我们可以将相关的参数输入到脚本中去;
read命令实现脚本参数的导入:
read多个参数可以同时导入
如果变量个数多于输入的数值,就把最后多余的数值赋值给最后一个变量;
例子:
read a b c
1 2 3 4 5 6
1.-p 可以指定输入提示文本;
read -p “请输入要查看的内容:”List_Disk
调用List_Disk -- $List_Disk
2.-t 设置超时时间
read -t 10 -p "请输入查看内容:“List_Disk
10秒后,脚本自动运行后面的内容
3.需要给read指定的变量,提供默认值:
[ $? -eq 0 ] && exit 0 || exit 1
[ $List_Disk ]
【多条命令写在同一行中执行,使用;隔开】
练习:输入一个设备文件,输出这个设备文件的基本信息:
请输入一个设备文件:sda1/sdb /dev/
#!/bin/bash
cat << EOF
warning:不要瞎写;
不要写乱七八糟
例如:…
要这样写:sadfjdjidh
EOF
read -t 5 -p “请输入设备文件名:” DiskName
[ ! $? -eq 0 ] && echo “好好写” && exit 1
for语句循环:
使用场景:遍历
在python语言中,我遍历的内容通过range(0,10,2);
在shell脚本中,遍历的内容来源会有很多,比如{1…10}、命令、可以通过文件通配符来进行文件的遍历操作、∗*∗@、直接写入字符串;
for的格式–写法:
for变量in索要遍历的内容;do
循环体
done
示例:for i in {1…10};done
echo $i
done
具体学习五种所要遍历内容的方式:
1.字符遍历
for i in see cat ;do
echo $i
done
2.数值的循环
for i in {2…10}; do
echo $i
done
3.取命令运行后的结果
for i in seq 1 2 9;do
echo $i
done
1到100的偶数和:
for i in $(seq 2 2 100); do
sum = sum + $i
# sum += $i
done
echo $sum
注意:所有的命令结果都可以放在这里来遍历
练习:找出user1这个用户的所有文件,判断这些文件的大小,并将大于100M的文件显示出来;
for FileName in $(find / -user user1);do
count=wc -c $FileName | cut -d" " -f1
if [ $count -gt 100000000];then
echo $FileName
fi
done
4.globbing文件通配符的方式
练习:去将/var/log/下以.log结尾的所有文件的行数,统计出来
for Line in /var/log/.log; do
wc -l Linedone5.做传参遍历Line
done
5.做传参遍历Linedone5.做传参遍历*@建议使用@
建议使用@建议使用@
在我们为脚本输入传参的时候,如果,我们要对每一个传参进行操作,这时候就可以使用@和@和@和*去遍历每一个传参;
示例:
for i in $@ ; do
echo $i
done
使用:bash 6.sh 1 2 3 4 5 6
练习
99乘法表:
while
while如何实现99乘法表
格式:
初始值
while 条件判断;do
循环体
值控制语句
done
注意:当条件判断为真的时候,才会进入循环体;
declare -i i=1
while [ $i -lt 10 ];do
declare -i j=1
while [ $j -le i];doecho−n−e"i ];do
echo -n -e "i];doecho−n−e"i*j=j=j=[i∗i*i∗j]\t"
let j++
done
echo
let i++
done
本文深入探讨了Shell脚本中的参数交互与for循环应用,包括read命令的多种用法,如设置提示文本、超时时间及默认值,以及for循环的不同遍历方式,如字符、数值、命令结果、文件通配符和传参遍历,通过实例讲解了如何在脚本中有效利用这些特性。

1186

被折叠的 条评论
为什么被折叠?



