Shell脚本编程实践——第2关:编写一个脚本,求一个数的逆序表示

简介: Shell脚本编程实践——第2关:编写一个脚本,求一个数的逆序表示

任务描述

本关任务:编写一个脚本,求一个数的逆序表示。


Shell 传递参数

Shell脚本使用$符号能够引用到执行该脚本时向其传递的参数,test.sh脚本内容如下:

#!/bin/bash echo "参数个数为:$# 个" echo "执行的文件名是:$0" echo "第一个参数是:$1" echo


调用脚本test.sh时后面所加的参数即为传递的参数,方式如下:


可见参数被按次序传入脚本。除此之外,还有一些特殊字符可以对参数进行处理:

字符 说明
$# 传递到脚本的参数的个数
$* 以一个单字符串显示所有传递的参数
$$ 脚本运行的当前进程ID号
$! 后台运行的最后一个进程的ID号
$@ 与$* 类似,但是它会将每个参数使用引号括起来显示
$- 显示Shell使用的当前选项
$? 显示最后命令的退出状态


Shell运算符

Shell与其他编程语言一样,支持多种运算符。包括:

  • 算术运算符
  • 关系运算符
  • 布尔运算符
  • 字符串运算符
  • 文件测试运算符


本节中我们将着重讲解算数运算符与关系运算符。

1)算数运算符

原生bash不支持简单的数学运算,必须通过其他命令实现,expr是一款表达式计算工具,在Shell脚本中较常使用。 实例:计算两个数相加之和。

 #!/bin/bash val=`expr 1 + 5` #注意此处使用的是反引号而不是单引号,且表达式和运算符之间必须要有空格 echo "两数之和为$val"
运算符 说明 备注
+ 加法
- 减法
* 乘法
/ 除法
% 取余
= 赋值 例如:a = $b
== 相等。用于比较两数是否相同 例如:[ $a == $b ] 返回false。条件表达式必须放在方括号之间,并且要有空格
!= 不相等。用于比较两数是否相同 例如:[ $a != $b ] 返回true


2)关系运算符

在Shell中关系运算符只支持数字,常用的关系运算符如下表所示(假设a=1,b=2):

运算符 说明 示例
-eq 检测两个数字是否相等 [ $a -eq $b ]返回false
-ne 检测两个数字是否不相等 [ $a -eq $b ]返回true
-gt 检测左边的数字是否比右边的数字大 [ $a -gt $b ]返回false
-lt 检测左边的数字是否比右边的数字小 [ $a -gt $b ]返回true
-ge 检测左边的数字是否大于等于右边的数字 [ $a -gt $b ]返回false
-le 检测左边的数字是否小于等于右边的数字 [ $a -gt $b ]返回true


Shell 函数

Shell定义函数的格式为

[ function ] funname [()] {     action;     [return int;] }


需要注意的是,方括号中的内容为可选内容,参数返回部分若不定义,则将默认返回最后一条命令的运行结果。 示例:定义一个函数并调用。

  # 在test.sh中定义一个test函数  test(){     echo "Hello,openEuler!"  }  echo "-----------loading......-------------"  test  echo "----------------end------------------


编程要求

根据提示,在右侧编辑器补充代码,计算并按格式输出数字的逆序表示。


测试说明

平台会对你编写的代码进行测试:

测试输入:15 1 256 1000; 预期输出: 5116520001

注意:转换后的一组数字一行展示一个,请勿包含任何空格,输入数字介于1~65535之间。


开始你的任务吧,祝你成功!

#!/bin/bash
reverseNum(){
    array_len=$# #测试集个数
    for num in $*
    do
        #请在此处键入您的代码
        x=$num
        #ans=""
        while [ $x -gt 0 ]
        do
            t=$[$x%10]
            echo -e "$t\c"
            #ans=$[$ans$t]
            x=$[$x/10]
        done
        echo ""
    done
}
目录
相关文章
|
1月前
|
Shell Linux 测试技术
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
59 2
6种方法打造出色的Shell脚本
|
24天前
|
XML JSON 监控
Shell脚本要点和难点以及具体应用和优缺点介绍
Shell脚本在系统管理和自动化任务中扮演着重要角色。尽管存在调试困难、可读性差等问题,但其简洁高效、易于学习和强大的功能使其在许多场景中不可或缺。通过掌握Shell脚本的基本语法、常用命令和函数,并了解其优缺点,开发者可以编写出高效的脚本来完成各种任务,提高工作效率。希望本文能为您在Shell脚本编写和应用中提供有价值的参考和指导。
50 1
|
28天前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
45 2
|
2月前
|
监控 网络协议 Shell
ip和ip网段攻击拦截系统-绿叶结界防火墙系统shell脚本
这是一个名为“小绿叶技术博客扫段攻击拦截系统”的Bash脚本,用于监控和拦截TCP攻击。通过抓取网络数据包监控可疑IP,并利用iptables和firewalld防火墙规则对这些IP进行拦截。同时,该系统能够查询数据库中的白名单,确保合法IP不受影响。此外,它还具备日志记录功能,以便于后续分析和审计。
51 6
|
1月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
2月前
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
106 1
|
2月前
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
78 12
|
2月前
|
存储 运维 监控
自动化运维:使用Shell脚本简化日常任务
【9月更文挑战第35天】在IT运维的日常工作中,重复性的任务往往消耗大量的时间。本文将介绍如何通过编写简单的Shell脚本来自动化这些日常任务,从而提升效率。我们将一起探索Shell脚本的基础语法,并通过实际案例展示如何应用这些知识来创建有用的自动化工具。无论你是新手还是有一定经验的运维人员,这篇文章都会为你提供新的视角和技巧,让你的工作更加轻松。
69 2
|
3月前
|
Shell
shell脚本变量 $name ${name}啥区别
shell脚本变量 $name ${name}啥区别
|
3月前
|
人工智能 监控 Shell
常用的 55 个 Linux Shell 脚本(包括基础案例、文件操作、实用工具、图形化、sed、gawk)
这篇文章提供了55个常用的Linux Shell脚本实例,涵盖基础案例、文件操作、实用工具、图形化界面及sed、gawk的使用。
681 2