TranslateProject/sources/tech/20190408 Bash vs. Python- Which language should you use.md

68 lines
3.2 KiB
Markdown
Raw Normal View History

2019-04-15 08:52:25 +08:00
[#]: collector: (lujun9972)
[#]: translator: (geekpi)
[#]: reviewer: ( )
[#]: publisher: ( )
[#]: url: ( )
[#]: subject: (Bash vs. Python: Which language should you use?)
[#]: via: (https://opensource.com/article/19/4/bash-vs-python)
[#]: author: (Archit Modi (Red Hat) https://opensource.com/users/architmodi/users/greg-p/users/oz123)
Bash 对比 Python你应该使用哪种语言
======
两种编程语言都有利有弊,这使得它们在某些任务上比对方更好。
![][1]
[Bash][2] 和 [Python][3] 是大多数自动化工程师最喜欢的编程语言。两者都有利有弊,有时很难选择应该使用哪一种。诚实的回答是:它取决于任务、范围、上下文和复杂性。
让我们比较这两种语言,以便更好地了解每种语言的用处。
### Bash
* 是 Linux/Unix shell 命令语言
* 非常适合编写使用命令行 CLI 工具,从一个命令到另一个命令(管道)的输出,以及执行简单任务(最多 100 行代码)的 shell 脚本
* 可以按原样使用命令行命令和工具
* 具有比 Python 更佳的启动时间,但执行时间性能较差
* 未在 Windows 中预装。你的脚本可能与多个操作系统不兼容,但 Bash 是大多数 Linux/Unix 系统上的默认 shell
* _不_与其他 shell 完全兼容(例如 csh、zsh、fish
* 管道(“|”CLI 工具(如 sed、awk、grep 等)可能会降低其性能
* 缺少许多函数、对象、数据结构和多线程,这限制了它在复杂脚本/编程中的使用
* 缺乏良好的调试工具和程序
### Python
* 是一门面向对象编程 OOP 语言,因此它比 Bash 更通用
* 几乎可以用于任何任务
* 适用于大多数主流操作系统,默认情况下也安装在大多数 Unix/Linux 系统上
* 与编写伪代码非常相似
* 具有简单、清晰、易于学习和易于阅读的语法
* 拥有大量的库,文档和活跃的社区
* 提供比 Bash 更好的错误处理功能
* 拥有比 Bash 更好的调试工具和程序,这使它成为开发含有大量代码的复杂软件的理想语言
* 应用(或脚本)可以包含许多必须在执行之前安装的第三方依赖项
* 与 Bash 相比,需要为简单任务编写更多代码行
我希望这些列表能让你更好地了解使用哪种语言以及何时使用它。
你在日常工作中使用哪种语言Bash 还是 Python请分享评论。
--------------------------------------------------------------------------------
via: https://opensource.com/article/19/4/bash-vs-python
作者:[Archit Modi (Red Hat)][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]: https://opensource.com/users/architmodi/users/greg-p/users/oz123
[b]: https://github.com/lujun9972
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/computer_happy_sad_developer_programming.png?itok=72nkfSQ_
[2]: /article/18/7/admin-guide-bash
[3]: /article/17/11/5-approaches-learning-python