练习题目:
文章来源地址https://www.toymoban.com/news/detail-405935.html
1.编写函数,实现打印绿色0K和红色FAILED,判断是否有参数,存在为0k,不存在为FAILED
#!/bin/bash
function print_result() {
if [ $# -eq 0 ]; then
echo -e "\033[0;31mFAILED\033[0m"
else
echo -e "\033[0;32m0K\033[0m"
fi
}
# 调用函数测试
print_result
print_result param1
2.编写函数,实现判断是否无位置参数,如无参数,提示错误
#!/bin/bash
function check_arg() {
if [ $# -eq 0 ]; then
echo "Error: No arguments provided."
else
echo "Arguments provided."
fi
}
# 调用函数测试
check_arg
check_arg param1
3.编写函数实现两个数字做为参数,返回最大值
#!/bin/bash
function max_num() {
if [ $1 -gt $2 ]; then
echo $1
else
echo $2
fi
}
# 调用函数测试
max_num 10 20
max_num 30 20
4.编写函数,实现两个整数位参数,计算加减乘除。
#!/bin/bash
function math_operation() {
echo "Addition: $(($1 + $2))"
echo "Subtraction: $(($1 - $2))"
echo "Multiplication: $(($1 * $2))"
if [ $2 -eq 0 ]; then
echo "Cannot divide by 0."
else
echo "Division: $(($1 / $2))"
fi
}
# 调用函数测试
math_operation 10 5
math_operation 20 0
5.将/etc/shadow文 件的每一-行作为元数赋值给数组
#!/bin/bash
declare -a shadow_arr=() # 声明一个空数组
while read line; do
shadow_arr+=("$line") # 将每行字符串添加到数组中
done < /etc/shadow
echo "shadow_arr: ${shadow_arr[@]}" # 打印数组元素
6.使用关联数组统计文件/etc/passwd中用户使用的不同类型shell的数量
#!/bin/bash
declare -A shell_counts=() # 声明关联数组
while read line; do
shell=$(echo $line | awk -F':' '{print $NF}') # 获取shell类型
((shell_counts["$shell"]++)) # 关联数组计数
done < /etc/passwd
# 遍历关联数组打印每个类型的数量
for key in "${!shell_counts[@]}"; do
echo "$key: ${shell_counts[$key]}"
done
7.使用关联数组按扩展名统计指定目录中文件的数量
#!/bin/bash
declare -A file_counts=() # 声明关联数组
dir_path="/path/to/dir" # 指定目录路径
for file_path in $dir_path/*; do
file_name=$(basename "$file_path") # 获取文件名
extension="${file_name##*.}" # 获取文件扩展名
((file_counts["$extension"]++)) # 关联数组计数
done
# 遍历关联数组打印每个扩展名的数量
for key in "${!file_counts[@]}"; do
echo "$key: ${file_counts[$key]}"
done
文章来源:https://www.toymoban.com/news/detail-405935.html
到了这里,关于shell 脚本编写的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!