加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ruby中百分号管道运算符的含义是什么,如“%|”?

发布时间:2020-12-17 04:30:44 所属栏目:百科 来源:网络整理
导读:我正在尝试理解 this site上提供的脚本: #!/usr/bin/env rubyrequire ENV['TM_SUPPORT_PATH'] + '/lib/escape.rb'def terminal_script_filepath %|tell application "Terminal" activate do script "jsc -i #{e_as(e_sh(ENV['TM_FILEPATH']))}" end tell|en
我正在尝试理解 this site上提供的脚本:
#!/usr/bin/env ruby

require ENV['TM_SUPPORT_PATH'] + '/lib/escape.rb'

def terminal_script_filepath
  %|tell application "Terminal"
      activate
      do script "jsc -i #{e_as(e_sh(ENV['TM_FILEPATH']))}"
    end tell|
end

open("|osascript","w") { |io| io << terminal_script_filepath }

最重要的是,函数terminal_script_filepath开头的部分:

%| …
… |

……以及“解析”的地方:

{ |io| io << terminal_script_filepath }

这里使用了哪些Ruby概念?

我知道带管道的open()可以帮助我将输入提供给进程的STDIN,但输入如何从terminal_script_filepath转到io?我也知道basic % operations with strings,就像%w一样,但管道在这里做什么?

解决方法

这是一个字符串.在ruby中,您可以通过各种方式定义字符串.单引号或双引号是最常见的,%s是另一种.您还可以使用此脚本中使用的任何分隔符定义字符串.例如,%^也是字符串^,或%$也是字符串$.您只需确保不在字符串中使用这些字符.

<<<在这种情况下,它被用作连接操作,将字符串附加到文件,或者在这种情况下,是一个侦听AppleScript的管道.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读