Shell编程 - 08shell脚本之循环和用户输入

212 阅读3分钟

变量命名规则

只包含字母、数字和下划线: 变量名可以包含字母(大小写敏感)、数字和下划线 \*,不能包含其他特殊字符。 不能以数字开头: 变量名不能以数字开头,但可以包含数字。 避免使用 Shell 关键字: 不要使用 Shell 的关键字(例如 if、then、else、fi、for、while 等)作为变量名,以免 引起混淆。 使用大写字母表示常量: 习惯上,常量的变量名通常使 用大写字母,例如 PI=3.14。 避免使用特殊符号: 避免使用空格: 变量名中不应该包含空格,因为空格通 常用于分隔命令和参数。

your_name="f4uit" echo $your_name

for skill in im Coffe Action Java; do echo "I am good at ${skill}Script" done

判断一个变量是否大于 10

if [ $num -gt 10 ]; then echo "$num is greater than 10" fi

判断一个数是奇数还是偶数

#!/bin/bash
num=7
if [ $((num % 2)) -eq 0 ]; then
echo "$num is even"
else
echo "$num is odd"
fi

if - elif - else

#!/bin/bash
score=85
if [ $score -ge 90 ]; then
echo "A"
elif [ $score -ge 80 ]; then
echo "B"
elif [ $score -ge 70 ]; then
echo "C"
elif [ $score -ge 60 ]; then
echo "D"
else
echo "F"
fi

条件符号

-lt: 小于 -le: 小于等于 -eq: 等于 -ne: 不等于 -ge: 大于等于 -gt: 大于

循环结构

遍历一个数字列表并打印每个数字 for number in 1 2 3 4 5;do echo $number done number 会依次取1、2、3、4、5,并在每次循环中通过echo 命令输出 遍历数组

fruits=("apple" "banana" "cherry")
for fruit in "${fruits[@]}"; do

echo $fruit
done

使用命令生成列表
for fruit in $(ls); do
echo $file
done

count 初始值为1,每次循环判断 count 是否小于等于 5,如果是则打印 count 的值,然后将 count 的值加 1。当 count 大于 5 时,循环结束

count=1
while [ $count -le 5 ]; do
echo $count
	count=$((count + 1))
done

while read line; do
echo $line
done < file.txt

until #循环与while 循环相反, 它在条件为假时持续执行命令块,直到条件变为真

#计算从1 加到为某个数,直到总加大于等于 10 #sum 为 0, num 为 1,每次循环将num累加到sum中,并将num 加1, 直到sum 大于等于 10,循环结束后输出sum 的值。

sum = 0
num = 0
until [ $sum -ge 10 ]; do
sum=$((sum + num))
num=$((num + 1))
done
echo $sum
break ##跳出循环
for i in 1 2 3 4 5; do
if [ $i -eq 3 ]; then
break
fi
echo $i
done
continue

跳过当前循环的剩余部分,直接进入下一次循环

for i in 1 2 3 4 5; do

if [ $i -eq 3 ]; then

continue
fi
echo $i
done

用户输入:

读取用户输入

read -p "请输入内容:" variable

-p 参数用于显示提示信息。

使用默认值

read -p "请输入你的名字(默认为John Doe):" -i "John Doe" -n 1 name

如果用户直接按下回车键,将使用默认值"John Doe"。

限制输入长度

read -n 5 name

限制用户输入的长度为5个字符。

读取密码

read -s -p "请输入密码:" password

-s 选项使得输入的字符不会在屏幕上显示。

读取整行输入

read -r line

-r 选项防止反斜杠字符被解释为转义字符。

用户输入验证: 循环读取用户输入直到满足某个条件,例如验证邮箱地址是否有效。

循环读取用户输入: 循环读取用户输入直到用户输入特定值(如'q')退出程序。

读取多个值

read first_name last_name

声明!

学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击下面链接进入b站主页B站泷羽sec