代码之家  ›  专栏  ›  技术社区  ›  Pawka

首选终端脚本语言[已关闭]

  •  3
  • Pawka  · 技术社区  · 17 年前

    为常见任务(备份、同步等)编写脚本时,您更喜欢哪种语言?为什么?我不是在说编程网页或应用程序。

    我在思考为什么bash仍然流行时提出了这个问题。例如,Python看起来更适合我。你使用它仅仅是因为你知道它还是因为一些特殊的原因?

    13 回复  |  直到 14 年前
        1
  •  4
  •   dbr    17 年前

    如果是“createthisdirectory,runthiscondmand,If that worked do runthis”级别,我只使用bashshell脚本。。

    任何更复杂的东西,比如说解析命令输出并对其执行操作的东西,都会变成Python脚本——我发现它写起来也一样快,主要是因为shell脚本很难调试(bash脚本错误消息与Python的回溯相比并没有多大用处……),并且最终代码变得更可读

        2
  •  4
  •   OscarRyz    17 年前

    …为什么bash仍然流行?

    当通过telnet/ssh连接到远程服务器时,良好的sh和vi命令非常有用

    对于本地管理员(当您拥有服务器时),您可以使用python/perl/ruby并根据自己的意愿对其进行自定义。但最确定的是,任何一天都可能会要求您“快速修复”安装了两个默认值的其他服务器: sh+vi

    这就是为什么。

        3
  •  3
  •   oggy    17 年前

    Unix有一种小型工具的理念,这些工具可以完成一项特定的工作,并且做得很好。通常,解决问题的最简单方法是使用这些工具的组合。Shell脚本是这方面的王者,毫无疑问。

    当然,还有“当你只有一把锤子”综合症:)

        4
  •  3
  •   Steve Weet    17 年前

    这实际上取决于脚本的类型。我开始在许多系统管理员类型的任务中使用ruby,但是对于快速而肮脏的脚本,bash仍然是我的首选。在我看来,bash的优势在于它的交互性。

    举个例子。前几天,我在大约200个压缩日志文件中搜索一些特定值,重新格式化输出并邮寄结果。

    这个过程花了几分钟的时间,之后我将bash命令写入脚本文件,对其进行参数化,在其周围包装一个for循环,然后邮寄结果,工作就完成了。

    我发现在bash中使用命令编辑和重试regex等比在单独的脚本文件中使用命令编辑和重试等要简单得多。

        5
  •  1
  •   Rob Wells    17 年前

    G'day,

    不同的任务需要不同的语言。我倾向于使用shell(通常是bash)或Perl,具体取决于任务。

        6
  •  1
  •   Alan Haggai Alavi    17 年前

    Perl最适合处理系统管理任务。我从未遇到过没有安装Perl的*nix系统。

        7
  •  1
  •   Kinlan    17 年前

    Python目前对我来说,我喜欢使用Python,因为它有一个交互式终端,我可以在编写脚本时使用它来构建和执行脚本——但我过去使用过perl。

        8
  •  1
  •   ConcernedOfTunbridgeWells    17 年前

    Bash或更广泛意义上的各种sh方言可以假定在几乎任何unix系统上都存在。通常,生产Unix系统(Solaris、HP/UX、AIX等)的安装非常简单;他们通常不会安装perl或python。可能有公司的政策限制这一点,所以安装它可能也不是一个选项。如果您想要在这种类型的平台上工作,您可能只需要sh/sed/awk。

    Bash非常适合主要涉及运行其他命令的任务,因此您不应该低估它。然而,它很快就变成了一种只写的语言,复杂程度相当低,因此如果您正在编写具有大量内部处理的程序,那么Perl或Python可能是更好的选择。

    为了安排备份,从cron运行bash脚本很可能是完成备份的最佳方式。对于涉及解析多个日志文件、将输出格式化为摘要状态文件以及在发现某些类型的事件时向您发送电子邮件通知的内容,您最好使用perl或python。

        9
  •  0
  •   Jeremy Cantrell    17 年前

    Bash是这类任务的首选脚本语言。它是非常普遍的,它的目的是成为一种粘合语言,从某种意义上说,您可以将一组通常在终端中执行的命令粘合在一起,这些命令几乎没有变化。

        10
  •  0
  •   mipadi    17 年前

        11
  •  0
  •   Sarah Vessels    17 年前

    我使用Ruby是因为我对它感觉最舒服。这是为数不多的语言之一,我发现自己在为问题的逻辑而挣扎,而不是语言的语法或限制。将它与C++或Perl进行比较,我会对指针和标记感到沮丧。我发现在Ruby中递归目录遍历和运行系统命令非常容易。 using Ruby to rename files and edit their content

        12
  •  0
  •   TJF    17 年前

    我通常使用perl。CPAN的模块库使许多任务变得简单。SSH是自动化系统管理任务的好工具。