Shell 脚本练习
shell语言实战
- Shell 脚本练习
- 💧CSDN@划过手的泪滴t
- 现有一个脚本可传入n个参数,要求在脚本中实现在终端输出第n个参数之前的所有参数(不包含第n个参数)
- 编写一个计算bmi体质指数的脚本,该脚本需要用户输入身高和体重信息,公式为(BMI)=体重(kg)÷身高^2(m),将计算结果输出在终端
- 简易的压缩脚本
- 让用户输入一个文件名,并做如下判断:
- 判断输入的数字是奇数还是偶数,并输出相应的消息。
- 判断用户输入的用户名是否存在于系统中,并输出相应的消息。
- 判断用户输入的文件是否存在,并输出相应的消息。
- 判断当前用户是否为root用户,并输出相应的消息。
- 计算bmi体质指数,根据结果判断需要输出的内容
- 在这里插入图片描述
💧CSDN@划过手的泪滴t
现有一个脚本可传入n个参数,要求在脚本中实现在终端输出第n个参数之前的所有参数(不包含第n个参数)
#!/bin/bash
for i in "$*"
do
echo ${i% *}
done
编写一个计算bmi体质指数的脚本,该脚本需要用户输入身高和体重信息,公式为(BMI)=体重(kg)÷身高^2(m),将计算结果输出在终端
#!/bin/bash
read -p "请输入你的体重:" weight
read -p "请输入你的身高:" height
bmi=$(echo "scale=2; $weight / ($height * $height)" | bc)
# 输出BMI指数
echo "您的BMI指数为: $bmi"
简易的压缩脚本
#!/bin/bash
read -p "输入文件名" name
BACKUP=$name-$(date +%Y%m%d).tar.gz
tar zcvf $BACKUP $* &> /dev/null
echo -n "已执行 $0 的脚本"
echo -n "共压缩 $# 个文件"
echo "被压缩的文件有:$@"
让用户输入一个文件名,并做如下判断:
(1)如果用户输入的文件为空时,显示you must input a filename;
(2)如果用户输入的文件不存在时,显示the file do not exist;
(3)如果文件存在,判断该文件的文件类型和执行者对该文件所拥有的的权限。
说明:由于root在很多权限的限制上面都是无效的,所以使用root执行这个脚本时,常常会发现与ls -l的结果不相同。所以建议使用一般用户来执行这个脚本
#!/bin/bash
read -p "输入一个文件名:" name
if [ -z $name ]
then
echo "you must input a filename"
elif [ -e $name ]
then
ls -l $name
else
echo "the file do not exist"
fi
更人性化的写法:
#!/bin/bash
read -p "输入一个文件名:" name
if [ -z $name ]
then
echo "you must input a filename"
elif [ -e $name ]
then
test -f $name && echo '普通文件'||(test -d $name && echo '文件夹')
test -r $name && echo '读'&&(test -w $name && echo '写' )&&(test -x $name && echo '执行')
else
echo "the file do not exist"
fi
判断输入的数字是奇数还是偶数,并输出相应的消息。
#!/bin/bash
read -p "请输入一个整数:" num
if [ $(($num%2)) -eq 1 ]
then
echo "这个数是奇数"
elif [ $(($num%2)) -eq 0 ]
then
echo "这是一个偶数"
fi
判断用户输入的用户名是否存在于系统中,并输出相应的消息。
#!/bin/bash
read -p "请输入一个用户名:" user
if ["$(compgen -u | grep $user)" = "$user" ]
then
echo "存在"
else
echo "不存在"
fi
判断用户输入的文件是否存在,并输出相应的消息。
#!/bin/bash
read -p "输入一个文件名:" name
if [ -e $name ]
then
echo "存在这个文件"
else
echo "不存在这个文件"
fi
判断当前用户是否为root用户,并输出相应的消息。
#!/bin/bash
if [ $(whoami) = "root" ]
then
echo "当前用户为root用户"
else
echo "当前用户不为root用户"
fi
计算bmi体质指数,根据结果判断需要输出的内容
- 当BMI指数为18.5~24.9时属正常
- BMI<18.5为消瘦
- BMI≥25.0为超重
#!/bin/bash
read -p "请输入你的体重:" weight
read -p "请输入你的身高:" height
bmi=$(echo "scale=2; $weight / ($height * $height)" | bc)
# 输出BMI指数
echo "您的BMI指数为: $bmi"
if [ $(echo "$bmi < 18.5" | bc ) -eq 1 ]; then
echo "您的身体状况为消瘦"
elif [ $(echo "$bmi >= 25.0" | bc ) -eq 1 ]; then
echo "您的身体状况为超重"
else
echo "您的身体状况为正常"
fi