将Ruby脚本结果回显为Bash脚本变量

时间:2013-04-24 15:35:37

标签: bash wget

我编写了一个小型Ruby脚本,用于输出用户选择的URL。我想将此URL嵌套到我的Bash脚本中,以便它直接提供给wget部分,而不是强制用户复制和粘贴链接。目前的代码如下:

>echo "Choose file to download"  
>./myscript.rb #  
>echo "Copy and Paste URL"  
>read answer  
>wget -O /myfile.zip "$answer"

任何有关制作此内容的帮助都将受到赞赏。

编辑:

>"Choose file to download"
>18 obfuscated1.zip 891 Thu, 18 Apr 2013 16:13:05 GMT
>19 obfuscated2.zip 892 Fri, 19 Apr 2013 16:13:53 GMT
>20 obfuscated3.zip 893 Sat, 20 Apr 2013 16:13:16 GMT
>20
>http://s3-us.amazonaws.com/obfuscated3.zip/AWSAccessKeyId=/Expires=/Signature=

URL在输出中被标记化,并在此处缩写,原因很明显。

1 个答案:

答案 0 :(得分:2)

您可以使用命令替换来执行此操作:

answer=$(./myscript.rb)
wget -O /myfile.zip "$answer"

<强>更新

我没有考虑过你的脚本产生的输出不是你感兴趣的URL。

鉴于你可以,至少:

  1. 修改myscript.rb以在标准输出上发出URL,并在标准错误上发出其他消息。然后你应该可以使用上面的解决方案。

  2. 使用system Ruby方法在wget内运行myscript.rb,如下所示:

    # the url variable holds the URL chosen by the user
    system("wget -O /myfile.zip #{url}")