从Ruby Script

时间:2017-06-09 15:17:29

标签: ruby shell zsh

我在Ruby中编写脚本并希望在Zshell的历史记录中插入一个调用Ruby脚本的命令。我已经尝试了这个但它无法访问调用的Zshell(我认为)

#!/usr/bin/env ruby
`zsh -c print -s what`

任何提示?

1 个答案:

答案 0 :(得分:1)

您可以采取以下措施:

在完成执行某个命令之后创建一个调用fc -R的zsh函数,如下所示:

function rb_yourprogram {
  ruby /path/to/your/program.rb && fc -R
}

在Ruby中,附加到~/.zsh_history文件:

File.open("~/.zsh_history", "a") do |f|
    f.puts "adds this line to history"
end

现在,您可以通过在zsh中键入rb_yourprogram来调用该程序,在完成执行后,它将重新加载历史文件,从而将具有这一新的历史记录(除了写入其他zsh实例的任何内容)在你打开第一个shell之后的那段时间里。)

您还可以在zsh中重载ruby命令,以便在完成执行后始终调用fc -R

function ruby {
  builtin ruby "$@" && fc -R
}