我使用以下Ruby脚本将pianobar的“正在播放的歌曲信息”发送到mac通知中心。我要做的是从同一个ruby脚本中获取像艺术家这样的歌曲信息,并将其保存为shell脚本文件(.sh)。每当我想通过glyr看到现在播放歌曲的歌词时,我就可以运行这个脚本。
trigger = ARGV.shift
if trigger == 'songstart'
songinfo = {}
STDIN.each_line { |line| songinfo.store(*line.chomp.split('=', 2))}
`/usr/bin/terminal-notifier -message "Artist: #{songinfo['artist']}\nAlbum: # {songinfo['album']}" -title "#{songinfo['title']}"`
end
需要作为文件输出
glyrc lyrics -a "Foster The People" -b "Torches"
我正在尝试使用变量#{songinfo ['artist']}。我在“结束”之前添加了一个新行,如下所示
`echo "glyrc lyrics -a "#{songinfo['artist']}" -b "#{songinfo['album']}""> test.txt`
这可以完成工作,但是我得到错误“语法错误接近意外令牌`('”只要括号()出现在相册名称上,所以这就失败了。所以我继续使用ruby方法来创建文件
File.write('test2.txt', 'glyrc lyrics')
上面那个没有任何变量的简单脚本在置于“结束”之前根本不起作用,虽然它在我单独运行时有效。