对于必须重复执行的工作,包括诸如移动文件和附加文本之类的事情,bash脚本仍然是一种行之有效的方式?如果我现在只有少量的bash技能,我应该投入时间学习做得更好,还是应该使用其他类似Perl或Python的东西?bash脚本仍然是要走的路?
回答
它总是值得拥有的各种课程的技能,但我明白,时间往往是紧张:)
我会说Python是可能给一如果它变得相当大,那么更易维护的解决方案,但对于小型脚本来说,bash是可以的。我会开始对100条线路感到紧张,或者如果你开始需要很多功能。 (当然,bash专家将能够找到更复杂脚本的方法,但脚本更容易被“随意”bash用户阅读,比如Java可能被“随便”的Java编码人员阅读。 )
你甚至可以使用Qt/C++。 QRegExp和QFile时使事情更容易:-)
我不会同意Jon Skeet的意见。尽管我总是怀念我的列表解析,但它们并不是我的shell的本地特性,对于低于10行的脚本(我的阈值低于Skeets,但我的能力也是如此),bash或任何本地shell语言都是我的快速/安全路线。我不会认为我认为转移到ipython作为本地shell的参数,认真;)
如果解决方案涉及列表,哈希或任何其他不平凡的数据结构,我会像一个dl像红宝石, python或perl。另一方面,如果我正在构建的东西将在多个平台上运行,而没有任何标准工具集的保证,那么我将使用bash,甚至是sh。这完全取决于解决方案的复杂性以及它的运行位置。
以我的经验使用任何你知道的命令行工具。我知道一些python,但是我的脚本中大约一半是用PHP编写的,因为这是我更了解的。
我知道bash是大多数(如果不是全部的话)Linux发行版的默认/ bin/sh,所以你不能在学习如何使用它时出错。但是,我会更进一步并尝试使用严格的Bourne shell语法。这样,您的脚本库将可轻松移植到其他UNIX版本。与其他人一样,这里假设你不需要更高级的特性,比如数组和其他东西,在这种情况下,更高级的语言就会处于有序状态。
在任何情况下,对于学习bash,我建议Advanced Bash-Scripting Guide作为一个很好的参考。
我同时使用bash和python。同时。 bash适用于短脚本(特别是zsh,当我不关心可移植性时,我最喜欢),python适用于更长,更复杂的脚本......但带有“嵌入”bash脚本的python甚至更好... os。 popen是你的朋友。
例如,我经常写:
for file in os.popen('find ...'):
...
代替人工手动操作的os.walk的,因为这是更快的方法去思考,往往要短得多。而且......当你使用管道时,这种技术会更好......
当然,要小心,因为可移植性可能是一个问题。此外,您还需要了解两种工具,以了解哪些部分使用哪种语言编写。
- 1. 需要帮助写bash脚本走动
- 2. 确定证书在bash脚本中仍然有效的天数
- 3. 2011:DIVs或TABLE? Div/Input/Labels仍然是要走的路,还是XHTML Tables(tables/tr/td)的风格?
- 4. Bash - 在后台运行程序仍然导致脚本等待
- 5. 意外`然后'bash脚本
- 6. CLLocationManager Singleton - 这是要走的路吗?
- 7. 的路要走,如果它是在Xamarin.Android
- 8. ,Cookie是否仍然需要?
- 9. 是quickclick js仍然需要?
- 10. 环路bash外壳脚本
- 11. bash脚本要解压的压缩文件,然后cd到
- 12. BASH需要脚本帮助
- 13. Bash脚本帮助需要
- 14. Bash脚本需要清理
- 15. OpenGL版本仍然是1.1
- 16. Python虚拟env仍然需要安装Python来运行脚本
- 17. Html.AntiForgeryToken()仍然需要?
- 18. 在bash使用-e时,路过的命令前的感叹号仍然不会导致脚本失败
- 19. Bash脚本破坏我的路径
- 20. 我是否仍然需要PHP版本5.6的XAMP
- 21. 是WSImport之后仍然需要的本地WSDL?
- 22. 脚本终止后,为什么从用作monit服务的bash脚本开始的进程仍然存在?
- 23. 在删除脚本元素后脚本仍然运行
- 24. ctype.h是否仍然需要unsigned char?
- 25. Netty 4.1是否仍然需要setUseClientMode?
- 26. 是否仍然需要限制$(window).scroll()?
- 27. FlashDevelop?我是否仍然需要Flash CS
- 28. 检查是否仍然需要blob
- 29. 重定向输出,仍然可以看到它们运行bash脚本
- 30. 创建的bash脚本,需要输入
+1,我喜欢关于“休闲”用户的观点...... – rmeador 2009-06-30 19:14:12