shell 脚本编写

这篇具有很好参考价值的文章主要介绍了shell 脚本编写。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

练习题目:

shell 脚本编写文章来源地址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

到了这里,关于shell 脚本编写的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • shell脚本简介+编写

    1、常用Linux命令 2、Linux下脚本编写 3、windows下CMD常用命令 1、系统预定义变量 常用系统变量 $HOME 、 $PWD 、 $SHELL 、 $USER 、 $PATH 等。 显示当前所有 Shell 变量: set 2、自定义变量 基本语法 定义变量:变量名=变量值 撤销变量:unset 变量名 声明静态变量:readonly变量,注意:不

    2024年02月02日
    浏览(41)
  • 简单shell脚本的编写

    shell脚本就是将命令写入文本中,文本可以被执行。 脚本:本质是一个文件,文件里面存放的是 特定格式的指令,系统可以使用脚本解析器 翻译或解析 指令 并执行(它不需要编译) shell 既是应用程序,又是一种脚本语言(应用程序 解析 脚本语言)。 简单使用 $0 表示当前

    2024年02月10日
    浏览(41)
  • Linux shell脚本编写

    一、常用shell脚本指令 echo: 输出指定的文本或变量值到标准输出。 read: 从标准输入读取用户输入,并将其保存到指定的变量中。 if: 执行条件语句,如果满足指定条件则执行特定操作,否则执行其他操作。 for: 循环执行特定操作,每次迭代更新变量值。 while: 循环执行

    2024年02月16日
    浏览(52)
  • Shell脚本练习——系统应用相关

    说明: $* 表示除了$0以外,所有的参数,如上即 “opt1 opt2 opt3 opt4“,每个变量之间用空格分割,共用一个双引号 说明: grep -E 开启拓展正则表达式,-o 仅显示匹配到的数据 ([0-9]{1,3}.){3}[0-9]{1,3}中[0-9]{1,3}表示1到3位数字,{3}表示重复3次,所以整体就是匹配IP地址 tr -s 对指

    2024年02月10日
    浏览(36)
  • 【Linux】编写一个 shell 脚本&执行

    在Linux中编写和执行脚本相对简单。下面是一个基本的步骤指南,帮助你创建一个简单的bash脚本并运行它: 1. 创建脚本文件 首先,你需要使用文本编辑器创建一个新的文件。这个文件通常会有 .sh 的扩展名,以表明它是一个shell脚本。例如,你可以创建一个名为 myscript.sh 的文

    2024年04月26日
    浏览(36)
  • 2.2 Shell 脚本编写和批量操作

    大纲 引言 Shell 脚本的作用和重要性 脚本编写的目的和优势 本节将介绍如何编写 Shell 脚本,以及如何利用脚本进行批量操作,提高运维效率。 Shell 脚本基础 Shell 脚本的概念和基本语法 变量和数据类型 条件语句和循环结构 函数的定义和使用 脚本编写实例 编写简单的脚本,

    2024年02月12日
    浏览(32)
  • 如何在ubuntu编写运行shell脚本

    1.打开ubuntu终端,新建一个hello.sh  编辑hello.sh 保存文件 2.为hello.sh添加可执行权限 3.运行hello.sh    

    2024年02月06日
    浏览(48)
  • 编写一个阿里云DDNS的shell脚本

    首先,您需要获取阿里云的AccessKey ID和AccessKey Secret,以便于通过API进行操作。 然后,可以使用cURL命令,向阿里云的API发送HTTP请求,来实现动态DNS的功能。 以下是一个简单的阿里云DDNS shell脚本的示例: ``` #!/bin/bash access_key_id=\\\" \\\" access_key_secret=\\\" \\\" domain=\\\" \\\" RR=\\\" \\\" ip= curl -s http:/

    2024年02月05日
    浏览(38)
  • shell 编写一个带有进度条的程序安装脚本

    使用 shell 写一个 软件安装脚本,带有进度条 在这个示例中,使用 ANSI 转义序列来实现覆盖原来的打印信息,并保持进度条在同一行显示。通过使用 r 进行回车,然后使用 \\033[K 清除当前行的内容,可以实现覆盖效果。 在 print_progress 函数中,首先清除当前行的内容,然后构

    2024年02月11日
    浏览(47)
  • C++ 基础(十二)函数-题目练习

    描述 编写一个函数sum(…),计算等差数列中前n项数据的和。已知等差数列的起始项为2。例如:等差数列2,5,8,11…,需要利用sum函数求出前3项的和为15。 【题目要求】 ① 等差数列中数字之间的差值不固定,需要自行输入。 ② 输入要求的数列项数n。 ③ 输出前n项数据的和

    2024年02月08日
    浏览(95)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包