Ruby到bash脚本翻译

Ruby到bash脚本翻译,ruby,bash,scripting,Ruby,Bash,Scripting,我们有一些ruby脚本需要翻译成bash脚本。过去是否有人做过这样或类似的事情(比如从python到bash)。你有什么指导方针/启发法给我吗。第一条指导方针是:不要这样做。如果你的脚本已经可以工作了,那么通过翻译它们来让它们不工作是没有意义的 第二条准则是:翻译任务,而不是代码。这一点尤其重要,因为你正在从一种能力更强的语言转向能力较弱的语言。第一条准则是:不要这样做。如果你的脚本已经可以工作了,那么通过翻译它们来让它们不工作是没有意义的 第二条准则是:翻译任务,而不是代码。这一点尤其重要,因

我们有一些ruby脚本需要翻译成bash脚本。过去是否有人做过这样或类似的事情(比如从python到bash)。你有什么指导方针/启发法给我吗。

第一条指导方针是:不要这样做。如果你的脚本已经可以工作了,那么通过翻译它们来让它们不工作是没有意义的


第二条准则是:翻译任务,而不是代码。这一点尤其重要,因为你正在从一种能力更强的语言转向能力较弱的语言。

第一条准则是:不要这样做。如果你的脚本已经可以工作了,那么通过翻译它们来让它们不工作是没有意义的


第二条准则是:翻译任务,而不是代码。这一点尤其重要,因为你正在从一门能力更强的语言转向能力较弱的语言。

我不想对你的想法进行评判,因为不可能判断出什么对给定的工作更好。也许是巴什,也许是鲁比。这是我的0,02美元:

  • 将任务分解为更小的任务。尝试为给定的较小任务查找一些shell命令(或unix可执行文件)。例如:
    files=Dir.glob(“*.jpg”)
    =>
    ls*.jpg
    对于此任务,您应该尽可能多地了解unix命令。尝试
    ls/bin/usr/bin
    并检查您的命令。你认识他们吗?如果没有-转换将是一项艰巨的任务…;)

  • 单独调试每个较小的任务(如果可能)

  • 尽可能多地使用shell内置程序。(它们通常比运行外部命令快一点)你知道你的shell内置了什么吗

  • 尽可能多地使用管道将较小的任务连接到较大的任务中。这是最难的部分。将代码分解为较小的任务是最好的,因为它们可以单独运行,并且使用stdin/out(管道就绪)。通常需要(稍微)更改应用程序的逻辑

  • 如果您有合理的新版本bash,您也可以将其用于某些网络编程,例如:

bash与/dev/{tcp | udp}联网-与/dev/目录无关-它们是bash的内部结构

exec 3<>/dev/tcp/www.google.com/80
echo -e "GET / HTTP/1.1\n\n" >&3
cat <&3
exec 3/dev/tcp/www.google.com/80
echo-e“GET/HTTP/1.1\n\n”>&3

猫我不想评判你的想法,因为不可能判断什么对给定的工作更好。也许是巴什,也许是鲁比。这是我的0,02美元:

  • 将任务分解为更小的任务。尝试为给定的较小任务查找一些shell命令(或unix可执行文件)。例如:
    files=Dir.glob(“*.jpg”)
    =>
    ls*.jpg
    对于此任务,您应该尽可能多地了解unix命令。尝试
    ls/bin/usr/bin
    并检查您的命令。你认识他们吗?如果没有-转换将是一项艰巨的任务…;)

  • 单独调试每个较小的任务(如果可能)

  • 尽可能多地使用shell内置程序。(它们通常比运行外部命令快一点)你知道你的shell内置了什么吗

  • 尽可能多地使用管道将较小的任务连接到较大的任务中。这是最难的部分。将代码分解为较小的任务是最好的,因为它们可以单独运行,并且使用stdin/out(管道就绪)。通常需要(稍微)更改应用程序的逻辑

  • 如果您有合理的新版本bash,您也可以将其用于某些网络编程,例如:

bash与/dev/{tcp | udp}联网-与/dev/目录无关-它们是bash的内部结构

exec 3<>/dev/tcp/www.google.com/80
echo -e "GET / HTTP/1.1\n\n" >&3
cat <&3
exec 3/dev/tcp/www.google.com/80
echo-e“GET/HTTP/1.1\n\n”>&3

cat I将通过说bash在某些任务上胜过Ruby来限定“能力较弱”(特别是如果您所做的只是调用一组系统命令)。如果最初的Ruby脚本最好用bash脚本编写,那么。。。但是你关于不直接将Ruby移植到bash的建议是正确的。我想通过说bash在某些任务上胜过Ruby(特别是如果你所做的只是调用一堆系统命令的话)来限定“能力较差”。如果最初的Ruby脚本最好用bash脚本编写,那么。。。但是你关于不直接将Ruby移植到bash的建议是正确的。你能告诉我们这些脚本做什么吗?这些脚本做一些实用计算,比如做数据库调用,使用memcached缓存连接,以及一些据我所知的算法。需要简化,以便更广泛的受众能够理解它们。这些东西并不是bash最擅长的(尤其是算术)。我建议您接受Ignacio的建议,保留现有的Ruby脚本。也许可以重构一下?嗯,Ruby比bash更容易阅读。这有点像解雇一名大学毕业生和雇用一名辍学者。在我看来,可读性取决于一个人的习惯。你能告诉我们脚本的作用吗?脚本可以进行一些实用计算,比如进行数据库调用,使用memcached缓存连接,以及据我所知的一些算法。需要简化,以便更广泛的受众能够理解它们。这些东西并不是bash最擅长的(尤其是算术)。我建议您接受Ignacio的建议,保留现有的Ruby脚本。也许可以重构一下?嗯,Ruby比bash更容易阅读。这有点像解雇大学毕业生和雇用辍学者。在我看来,可读性取决于一个人的习惯。