返回顶部
首页 > 资讯 > 精选 >Shell脚本之进制转换器如何实现
  • 434
分享到

Shell脚本之进制转换器如何实现

2023-07-05 15:07:59 434人浏览 安东尼
摘要

本篇内容介绍了“shell脚本之进制转换器如何实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、需求说明计算IP地址我们经常需要将十进制

本篇内容介绍了“shell脚本之进制转换器如何实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、需求说明

计算IP地址我们经常需要将十进制和二进制数值之间进行转换,实际上进制之间转换通过bc命令就可以完成。此进制转换器shell脚本就是利用bc进制转换功能来实现我们的需求,并做了一些完善,例如bc要求十六进制字符为大写,脚本进行了优化输入大小写都可以。脚本针对输入的数值进行了校验,如果数值格式输入错误,会报错提示。

二、脚本内容

#!/bin/bash#script name: conversion.sh#author: wuhs#description: 此脚本用于二进制和十进制之间的转换#date: 2022-05-09#参数定义#进制转换类型参数f=$1#待转换数值参数d=$2case $1 in  2to10)    if echo $d |grep -E "^[0,1]*$" >/dev/null;then      echo "obase=10;ibase=2;$d" |bc    else      echo "参数2要求输入二进制数"    fi  ;;  10to2)    if echo $d |grep -E "^[0-9]*$" >/dev/null;then      echo "obase=2;ibase=10;$d" |bc    else      echo "参数2要求输入十进制整数"    fi  ;;  8to10)    if echo $d |grep -E "^[01234567]*$" >/dev/null;then      echo "obase=10;ibase=8;$d" |bc    else      echo "参数2要求输入八进制字符"    fi  ;;  10to8)    if echo $d |grep -E "^[0-9]*$" >/dev/null;then      echo "obase=8;ibase=10;$d" |bc    else      echo "参数2要求输入十进制整数"    fi  ;;  16to10)    if echo $d |grep -E "^[0-9A-Fa-f]*$" >/dev/null;then      d=`echo $d |tr a-z A-Z`      echo "obase=10;ibase=16;$d" |bc    else      echo "参数2要求输入十六进制字符"    fi  ;;  10to16)    if echo $d |grep -E "^[0-9]*$" >/dev/null;then      echo "obase=16;ibase=10;$d" |bc    else      echo "参数2要求输入十进制整数"    fi  ;;  2to8)    if echo $d |grep -E "^[0,1]*$" >/dev/null;then      echo "obase=8;ibase=2;$d" |bc    else      echo "参数2要求输入二进制数"    fi  ;;  8to2)    if echo $d |grep -E "^[01234567]*$" >/dev/null;then      echo "obase=2;ibase=8;$d" |bc    else      echo "参数2要求输入八进制字符"    fi  ;;  2to16)    if echo $d |grep -E "^[0,1]*$" >/dev/null;then      echo "obase=16;ibase=2;$d" |bc    else      echo "参数2要求输入二进制数"    fi  ;;  16to2)    if echo $d |grep -E "^[0-9A-Fa-f]*$" >/dev/null;then      d=`echo $d |tr a-z A-Z`      echo "obase=2;ibase=16;$d" |bc    else      echo "参数2要求输入十六进制字符"    fi  ;;  8to16)    if echo $d |grep -E "^[01234567]*$" >/dev/null;then      echo "obase=16;ibase=8;$d" |bc    else      echo "参数2要求输入八进制字符"    fi  ;;  16to8)    if echo $d |grep -E "^[0-9A-Fa-f]*$" >/dev/null;then      d=`echo $d |tr a-z A-Z`      echo "obase=8;ibase=16;$d" |bc    else      echo "参数2要求输入十六进制字符"    fi  ;;  *)    echo "参数1输入错误"    exit  ;;esac

三、使用示例

二进制转换为十进制

[root@s146 ipcheck]# ./conversion.sh 2to10 10019[root@s146 ipcheck]# ./conversion.sh 2to10 1003参数2要求输入二进制数

十进制转换为二进制

[root@s146 ipcheck]# ./conversion.sh 10to2 25511111111[root@s146 ipcheck]# ./conversion.sh 10to2 255A参数2要求输入十进制整数

八进制转换为十进制

[root@s146 ipcheck]# ./conversion.sh 8to10 7157[root@s146 ipcheck]# ./conversion.sh 8to10 81参数2要求输入八进制字符

十进制转换为八进制

[root@s146 ipcheck]# ./conversion.sh 10to8 5973[root@s146 ipcheck]# ./conversion.sh 10to8 5911117[root@s146 ipcheck]# ./conversion.sh 10to8 591A参数2要求输入十进制整数

十六进制转换为十进制

[root@s146 ipcheck]# ./conversion.sh 16to10 A10[root@s146 ipcheck]# ./conversion.sh 16to10 X参数2要求输入十六进制字符[root@s146 ipcheck]# ./conversion.sh 16to10 G参数2要求输入十六进制字符[root@s146 ipcheck]# ./conversion.sh 16to10 abc2748

十进制转换为八进制

[root@s146 ipcheck]# ./conversion.sh 10to16 2748ABC[root@s146 ipcheck]# ./conversion.sh 10to16 1711[root@s146 ipcheck]# ./conversion.sh 10to16 15F

二进制转换为八进制

[root@s146 ipcheck]# ./conversion.sh 2to8 101113[root@s146 ipcheck]# ./conversion.sh 2to8 1011.参数2要求输入二进制数

八进制转换为二进制

[root@s146 ipcheck]# ./conversion.sh 8to2 3111001[root@s146 ipcheck]# ./conversion.sh 8to2 31a参数2要求输入八进制字符

八进制转换为十六进制

[root@s146 ipcheck]# ./conversion.sh 8to16 13B[root@s146 ipcheck]# ./conversion.sh 8to16 12A[root@s146 ipcheck]# ./conversion.sh 8to16 12c参数2要求输入八进制字符

十六进制转换为八进制

[root@s146 ipcheck]# ./conversion.sh 16to8 C14[root@s146 ipcheck]# ./conversion.sh 16to8 c14[root@s146 ipcheck]# ./conversion.sh 16to8 c1d6035[root@s146 ipcheck]# ./conversion.sh 16to8 c1dg参数2要求输入十六进制字符

禁止转换参数输入错误

Shell脚本之进制转换器如何实现

“Shell脚本之进制转换器如何实现”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Shell脚本之进制转换器如何实现

本文链接: https://lsjlt.com/news/353006.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Shell脚本之进制转换器如何实现
    本篇内容介绍了“Shell脚本之进制转换器如何实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、需求说明计算IP地址我们经常需要将十进制...
    99+
    2023-07-05
  • Shell脚本之进制转换器的实现
    目录一、需求说明二、脚本内容三、使用示例一、需求说明 计算IP地址我们经常需要将十进制和二进制数值之间进行转换,实际上进制之间转换通过bc命令就可以完成。此进制转换器shell脚本就是利用bc进制转换功能来实现我们的需求...
    99+
    2023-03-23
    Shell 进制转换器 Shell 进制转换
  • JavaScript如何实现进制转换
    这篇文章主要讲解了“JavaScript如何实现进制转换”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript如何实现进制转换”吧! ...
    99+
    2024-04-02
  • Shell脚本如何实现查找与替换
    小编给大家分享一下Shell脚本如何实现查找与替换,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1 查找文本grep:使用POSIX定义的基本正则表达式(BRE)...
    99+
    2023-06-09
  • Shell脚本中不同进制数据转换的例子(二进制、八进制、十六进制、base64)
    shell可以在不调用第3方命令,表示不同进制数据。这里总结以下表示方法。shell 脚本默认数值是由10 进制数处理,除非这个数字某种特殊的标记法或前缀开头. 才可以表示其它进制类型数值。如:以 0 开头...
    99+
    2022-06-04
    脚本 例子 数据
  • Shell脚本中不同进制数据转换的方法教程
    这篇文章主要讲解了“Shell脚本中不同进制数据转换的方法教程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Shell脚本中不同进制数据转换的方法教程”吧!shell可以在不调用第3方命令,...
    99+
    2023-06-09
  • shell脚本如何实现多彩进度条
    这篇文章将为大家详细讲解有关shell脚本如何实现多彩进度条,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。先贴代码#!/bin/bashi=0;str=""arr=("|&q...
    99+
    2023-06-09
  • 如何使linux shell实现守护进程脚本
    这篇文章主要讲解了“如何使linux shell实现守护进程脚本”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使linux shell实现守护进程脚本”吧!#! /bin/sh...
    99+
    2023-06-09
  • javascript如何实现36进制的转换
    这篇“javascript如何实现36进制的转换”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这...
    99+
    2024-04-02
  • C#如何实现转换十六进制
    这篇文章主要介绍“C#如何实现转换十六进制”,在日常操作中,相信很多人在C#如何实现转换十六进制问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#如何实现转换十六进制”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-17
  • 如何实现批量转换目录下文件编码的shell脚本
    这篇文章将为大家详细讲解有关如何实现批量转换目录下文件编码的shell脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一例批量转换目录下文件编码的shell脚本代码。需求描述:由于从window转lin...
    99+
    2023-06-09
  • Java如何实现十进制与十六进制转换
    这篇文章主要介绍了Java如何实现十进制与十六进制转换,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。示例:import java.util.HashMap;impo...
    99+
    2023-06-20
  • C#实现进制转换
    十进制整数与其他进制的字符串之间的转换。 c#中十六进制用前缀0x表示。int c = 0x1000; 一、利用Convert.ToString(number, baseV...
    99+
    2024-04-02
  • 如何实现python图片格式转换脚本
    这篇文章给大家分享的是有关如何实现python图片格式转换脚本的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.cv2pip install opencv-python之后就可以import cv21.1 导包i...
    99+
    2023-06-22
  • 实现大小写字母转换的shell脚本分享
    这篇文章主要讲解了“实现大小写字母转换的shell脚本分享”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“实现大小写字母转换的shell脚本分享”吧!代码如下:#!/bin/sh #edit ...
    99+
    2023-06-09
  • Python实现任意进制之间的转换
      在日常生活中我们频繁使用到数学的进制,如季度逢三进一,星期逢七进一;×××、小时使用12进制,每天使用24进制,每月使用30进制,分秒使用60进制,一年使用360进制等等;在编程过程中我们经常需要转换进制,虽然Python已经内置了常...
    99+
    2023-01-31
    Python
  • 如何实现Shell菜单脚本
    这篇文章将为大家详细讲解有关如何实现Shell菜单脚本,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。编写的Shell菜单脚本,傻瓜式的人机交互,人人都可以操作linux。#!/bin/sh#Shell菜单...
    99+
    2023-06-09
  • Shell脚本注释如何实现
    这篇文章主要介绍了Shell脚本注释如何实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Shell脚本注释如何实现文章都会有所收获,下面我们一起来看看吧。单行注释直接在行最前端加上符号 # 即可。具体用法如下...
    99+
    2023-07-05
  • PHP实现在线进制转换器,10进制,2、4、8、16、32进制转换
    1.接口文档     2.laravel实现代码 public function binaryConvertCal() { $ten = $this->request('ten'); $two...
    99+
    2023-08-31
    php 开发语言
  • shell脚本如何实现日历的屏幕控制
    这篇文章主要介绍shell脚本如何实现日历的屏幕控制,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先什么是脚本 脚本语句由Linux系统解释执行.脚本由脚本语言与可执行的二进制文件或命令组成,因此,脚本是不需要再编...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作