Bash脚本可以完成其他脚本语言无法实现的任何功能吗?

时间:2017-10-26 18:57:54

标签: bash scripting

多年来我为我的Mac编写了几十个Bash脚本,尽管我有80%的Bash代码都在.bash_profile。最近我通过使用Python来做我以前用Bash做的事情。

所以,给定像Python或Ruby(甚至是PHP)这样的语言,除了.bash_profile之类的登录脚本(这可能不是例外),Bash可以做任何通用脚本的任务吗?语言不能?

3 个答案:

答案 0 :(得分:2)

Bash是oldschool UNIX - 将小实用程序拉到一起以实现更大的目标,主要是通过使用管道和管道输出从一个命令到下一个命令。

对于拥有这种裤子编程座位所涉及的技能,肯定有很多话要说。很多人都会离开并编写一个自包含的程序来实现可以使用一些命令行输入完成的任务。

所以回答你的问题,是的。 bash脚本可以教你理解那里的众多bash脚本,它可以在UNIX盒子上以最有效的方式完成大部分工作。 Bash就在这里。

答案 1 :(得分:1)

好吧,首先,bash本身就是一个shell,所以它带有内置功能,如作业控制(暂停等),文件句柄/终端重定向(2 &> 1和朋友)和终端控制(如存在)能够在标题栏中显示当前路径等)。其他没有内置shell且可以访问termcap的语言没有这些功能。管道重定向很难正确(例如,由于线程和潜在的死锁,python的subprocess.popen有一些限制,而bash可以访问tee等。)

答案 2 :(得分:0)

没有。 Bash是用C语言编写的,它运行的程序是用其他语言编写的(通常是C语言或用C语言实现)。因此,Bash所做的一切都可以 - 而且已经是 - 由其他编程语言完成。