• 在shell中实现数据类型的转换


      -  在python中实现这一功能非常简单,python中默认就定义了这几个函数,方便数据类型的转换,如:str() 、int()

      -  在shell中如何实现数据类型的转换?在shell中好像也没有太多的类型

      -  我想,在编写linux系统的shell脚本时,我们经常会碰到需要进行数据类型的时候,下面是我自己在网上找到的一些方法,整理一下分享一下,希望能对大家有所帮助,哈哈

    • 数字类型转字符类型

      数据类型转字符类型,是比较常见的,也是比较容易实现的。大多时候系统能够自动进行转换,如:

      # 变量 num 赋值为整数2,但 echo 输出时已被当成字符串。
      [root@lbcsvr ~]# num=$((1+1))
      [root@lbcsvr ~]# echo ${num}
      # 当然我们也可以强制进行转换,如:
      # 通过与空字符串进行连接,强化将变量num转换为字符型
      [root@lbcsvr ~]# echo ${num}""

      上面的方法同样适用于各种浮点数类型转字符类型,如:

      [root@lbcsvr ~]# num=`awk 'BEGIN{print 7.01*5-4.01}'`
      [root@lbcsvr ~]# echo ${sum}
      [root@lbcsvr ~]# echo ${sum}""
    • 字符类型转数值类型

      反过来,字符类型转数值类型也是可以实现的。

      如:

      # 我发现date命令输出的虽然是字符串,但是可以直接运算耶
      [root@lbcsvr ~]# date
      2020年 04月 13日 星期一 00:16:13 CST
      [root@lbcsvr ~]# n1=`date | awk -F[: ] '{print $7}'`  # 提取字符串并赋值
      [root@lbcsvr ~]# n2=`date | awk -F[: ] '{print $7}'`
      [root@lbcsvr ~]# echo $[ n2 - n1 ]
      6
      # 那么如果想要进行字符类型转数值类型的话,可以这样:
      [root@lbcsvr ~]# n1=`date | awk -F[: ] '{print $7}'`
      [root@lbcsvr ~]# n1=$((n1+0))   # 进行运算n1加上0的结果再赋值给n1,值不会改变
    • 日期型转数值

      日期型转数值主要是通过date命令来实现来的。

      命令:date -d "2018-07-24" +%s

      参数 "%s" 的作用是将-d参数后的日期转换成自UTC时间(1970-01-01 00:00:00)以来所经过的秒数。

      [root@lbcsvr ~]# date -d '2018-07-24' +%s
      1532361600
    • 日期型转字符

      要日期型转数值差不多,也是通过date命令来实现来的

      date -d "2018-07-24 12:00:25" +%Y-%m-%d

      将-d参数后的时间,按照“%Y-%m-%d”格式输入字符串。

      [root@lbcsvr ~]# date -d '2018-07-24' +%Y-%m-%d
      2018-07-24
    • 数值转日期

      日期型的转换,都可以通过date命令来完成。

      date -d @1538617600 +%Y-%m-%d

      通过-d将自UTC 时间 (1970-01-01 00:00:00) 以来所经过的1538617600 秒后的时间以格式字符输出。

      [root@lbcsvr ~]# date -d @1538617600 +%Y-%m-%d
      2018-10-04
  • 相关阅读:
    .NET西安社区 [拥抱开源,又见 .NET] 第二次活动简报
    HttpClient在.NET Core中的正确打开方式
    西安活动 | 2019年1月13号 "拥抱开源, 又见.NET" 线下交流活动报名进行中
    基于IdentityServer4 实现.NET Core的认证授权
    dnSpy 强大的.Net反编译软件
    .NET Core中实现AOP编程
    Why DDD and layered architecture
    领域驱动设计之-前言
    load average 定义(网易面试)
    sendfile“零拷贝”和mmap内存映射
  • 原文地址:https://www.cnblogs.com/liangbc/p/12688616.html
Copyright © 2020-2023  润新知