`
sheep3600
  • 浏览: 9341 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

写shell的痛苦

阅读更多
写shell脚本,在java里面异常简单,但是想在shell里面写确实如此的复杂,基本的运算都不好用,唉~~~~,附上java代码,已经被我修改的相当简单了。
谁能帮我把他转成shell啊~~~~!

    public static String long2dir(long numInfo) {
        long l0 = (2 << 7) - 1;
        long l1 = (2 << 15) - 1;
        long l2 = (2 << 23) - 1;
        long l3 = (2 << 31) - 1;

        String dirInfo = "";

        long num0, num1, num2, num3 = 0;

        num0 = (numInfo & l0) >> (0 * 8);
        num1 = (numInfo & l1) >> (1 * 8);
        num2 = (numInfo & l2) >> (2 * 8);
        num3 = (numInfo & l3) >> (3 * 8);

        dirInfo = num3 + "/" + num2 + "/" + num1 + "/" + num0;
        return dirInfo;
    }

0
1
分享到:
评论
4 楼 dwangel 2010-04-16  
#!/bin/sh  
export NUM=$1  
export STEP=256
export NUM0=`expr "$NUM" % $STEP`  
export NUM=`expr $NUM / $STEP`  
export NUM1=`expr "$NUM" % $STEP`  
export NUM=`expr $NUM / $STEP`  
export NUM2=`expr "$NUM" % $STEP`  
export NUM=`expr $NUM / $STEP`  
export NUM3=`expr "$NUM" % $STEP`  
echo $NUM3/$NUM2/$NUM1/$NUM0  
3 楼 sheep3600 2010-04-16  
呵呵,以前的老代码都是java习惯写的,我改的简洁是说我我把它改成很傻瓜的方式,方便我移植成shell~~~~,非常感谢非常感谢~~~。

附上我的原装实际java代码~~~~

    /**
     * 数字转换目录结构
     * 
     * @param numInfo 数字
     * @return dirInfo 目录结构
     */
    public static String long2dir(long numInfo) {

        long mask[] = { 0x000000FF, 0x0000FF00, 0x00FF0000, 0xFF000000 };
        long num = 0;
        StringBuffer dirInfo = new StringBuffer();
        for (int i = 0; i < 4; i++) {
            num = (numInfo & mask[i]) >> (i * 8);
            if (i > 0)
                dirInfo.insert(0, ".");
            dirInfo.insert(0, Long.toString(num, 10));
        }
        return dirInfo.toString();
    }



    public static String num2dir(long numInfo) {
        String dirInfo = "";
        long temp = 0;

        for (int i = 3; i >= 0; i--) {
            temp = numInfo / (long) Math.pow(256, i) % 256;
            if (i == 3) {
                dirInfo = dirInfo + temp;
            } else {
                dirInfo = dirInfo + "/" + temp;
            }
        }

        return dirInfo;
    }
2 楼 dwangel 2010-04-16  
其实,你的java写得也不够简洁……
不考虑性能的话,没必要那么多二进制运算。
1 楼 dwangel 2010-04-16  
#!/bin/sh
export NUM=$1
export NUM0=`expr "$NUM" % 16`
export NUM=`expr $NUM / 16`
export NUM1=`expr "$NUM" % 16`
export NUM=`expr $NUM / 16`
export NUM2=`expr "$NUM" % 16`
export NUM=`expr $NUM / 16`
export NUM3=`expr "$NUM" % 16`
echo $NUM3/$NUM2/$NUM1/$NUM0

相关推荐

    一键ROS安装shell脚本

    实现了indigo,kinetic,melodic,foxy版本的一键安装,免除墙的痛苦.在indigo,kinetic,melodic默认安装为ros1.0版本,foxy下自动安装为ros2.0版本.

    一个自动生成OpenSSL反向shell的简单脚本-Linux开发

    一个简单的Bash脚本,使OpenSSL反向shell的生成变得无痛苦目录简介用法屏幕快照许可证简介Revssl的创建主要是为了使OpenSSL re自动化。创建它主要是为了从此处自动化OpenSSL反向Shell构想,并将其打包到一个脚本中。...

    shift妙用之解决shell编程中的入参问题

    我说过了,shell是我的常规武器,目前虽然还不纯熟,但是我爱shell这门语言,在Linux下面混,总要写脚本。程序员是有基因,对编程语言是有偏好的,你让我写C代码,我会觉得很爽,会有困难,会有痛苦的摸索和学习,...

    跑胡子java源码-shellfire:命名空间的、可组合的shell(bash、sh和dash)函数库的存储库。意识到shell脚本的痛苦,

    shell 脚本中构建模块化应用程序。 它旨在:- 抽象出多个 shell 解释器之间的差异(和无数错误) 实现常见的习语和功能 使用现代的模块化功能集促进 shell 代码的重用,以快速完成实际工作 有效处理结构化数据格式,...

    catacomb:一种用于存储Shell命令的简约CLI工具

    地下墓穴 一种用于存储Shell命令的简约CLI工具。 记住有用的命令很困难,而键入长命令则令人沮丧。 使用地下墓穴减轻这些痛苦,地下墓穴是用于存储,检索和执行命令的简单CLI工具。 只需键入一次命令,然后使用您...

    express-shell:只是与 Express 合作的试验场

    快递壳这个 repo 是一个基本的 shell,用于启动和运行 Express Apps。 它深受我在为创建“从零到六十”课程时。特征改进的 Express 入门套件SB 管理员引导程序应用骨架验证快速会话(使用 Redis 和 Flash 变量) ...

    使用Dreamhost空间下Shell命令的使用方法

    如果是一个目录子文件较多,用 FTP 删除也是比较痛苦的事情,用这个命令可以快速解决。 5. ZIP 命令:压缩文件夹。使用方法:输入 `zip -r 要压缩的文件夹名 要压缩的文件夹名`,系统将压缩指定的文件夹。 6. WGET ...

    ora_backup:用于 Oracle 数据库备份的 Shell 脚本(Expdp、Hotbakup、RMAN)

    本文将详细介绍使用 Shell 脚本来执行 Oracle 数据库的三种备份方式:Expdp、Hotbackup 和 RMAN,并结合"ora_backup"脚本进行深入解析。 1. **Expdp(数据泵导出)** Expdp 是 Oracle 数据泵工具的一部分,用于...

    mkshortcut:mkshortcut,一个 GNU 风格的 Cygwin 命令行实用程序,用于创建快捷方式(OLE Shell 链接)

    我现在很少使用 Windows,但仍然认为 Cygwin 和 MobaXterm 等衍生产品可以大大减轻使用 Windows 的痛苦。 编写了 mkshortcut,一个 GNU 风格的 Cygwin 命令行实用程序,用于创建快捷方式(OLE Shell 链接) 包含在...

    powscript:用bash编写的transpiler:无痛的shellscript,基于缩进的,带有时髦火花v1 BETA LANDED的外壳咖啡:party_popper::party_popper::party_popper::party_popper:感谢fcard!

    这个工具的核心概念是将Coffeescript的语法风格引入到Unix shell环境中,创建出一个基于缩进的、无痛苦的shell脚本编写体验。通过名为“powscript”的transpiler,开发者可以利用PowScript的简洁语法将代码转换为...

    timelapse:用于捕获和编译缩时摄影的Shell脚本

    用于捕获和编译缩时摄影的Shell脚本,如下所示: 要求 软件 (可选) 硬件 具有实时JPG照片URL的iPhone或网络摄像头 因为我的手机是我拥有的最好的相机,所以我会同时使用它和应用程序。 其未记录的照片URL路径为/...

    MSOutlookit:Groupme MSOutlook Shell

    由于这是我的第一个有后端和前端的项目,当网站流行起来时,我经历了很多扩展的痛苦。 在所有端点上手动实施 memcached 并进行一些优化后,该站点现在处于更好的状态。 将 reddit 功能嵌入不同的 UI(以及重新实现...

    dotfiles:设置Mac并将其与其他计算机同步

    没有自动化,很难安装新计算机,并且使所有计算机保持同步是很痛苦的。 这样的系统可以解决所有问题。 这个怎么运作 这很简单。 该系统: 运行一个shell脚本,该脚本可以自动执行命令行工具,程序包管理器和Mac...

    blog_lsq

    在IT行业中,Shell是一种强大的命令行接口,用于与操作系统交互,尤其在Unix和Linux系统中广泛使用。"blog_lsq"可能是一个关于Shell脚本编程的学习资料或博客文章的压缩包,其中包含了作者对Shell编程的深入理解和...

    节目单

    在IT行业中,Shell是一种强大的命令行接口,用于与操作系统交互,尤其在Unix和Linux系统中广泛使用。"节目单"这个标题可能是指一个特定的Shell脚本或程序,用于管理和展示电视节目的播放列表,或者可能是一个项目的...

    甘塞萨

    【甘塞萨】是一个与Shell相关的项目,从提供的信息来看,它可能是一个开源软件或工具,主要用于与猫咪相关的互动或管理。"Gaunsessa-master"是这个项目的主分支或者源代码仓库的名字,按照Git的习惯,通常"master...

    sqlline:用于通过JDBC向关系数据库发布SQL的Shell

    用于通过JDBC向关系数据库发布SQL的命令行外壳。历史的项目的一个分支,也合并了项目所做的更改,这些更改现已在github中进行了现代化,Mavenized和forkable。 另请参见。许可证和发行SQLLine是根据,这意味着您可以...

    mixedstuff:一些用于系统和项目的东西

    考虑到标签是“Shell”,我们可以推测这个压缩包可能包含了一系列的Unix/Linux Shell脚本,这些脚本可能用于自动化任务执行、系统管理、数据处理或是其他与Shell编程相关的功能。 在Unix/Linux系统中,Shell是一种...

    HTPC_Scripts:减轻HTPC的痛苦

    减轻HTPC的痛苦。 我提出了一些脚本,以使批处理转换和重命名更容易由HTPC上的媒体管理员处理。 自行承担使用风险; 做出了许多假设,我正在努力尝试使它们更具通用性/通用性 ffconv和concat都需要安装ffmpeg; ...

    可悲的路德维希

    在IT行业中,Shell是一种至关重要的命令行界面,它允许用户与操作系统进行交互,执行各种任务,包括文件管理、程序控制以及脚本编写。"可悲的路德维希"可能是某种项目或教程的名字,不过由于信息有限,我们将重点...

Global site tag (gtag.js) - Google Analytics