簡體   English   中英

從Ruby腳本向Zsh歷史記錄添加命令

[英]Add Command to Zsh History from Ruby Script

我正在用Ruby編寫腳本,並想在Zshell的歷史記錄中插入一個調用Ruby腳本的命令。 我已經嘗試過了,但是它無法訪問調用Zshell的程序(我認為)

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

有什么提示嗎?

可以執行此操作的一種方法如下:

創建一個zsh函數,該函數在完成執行以下命令后將調用fc -R ,如下所示:

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實例中寫入的任何內容)。第一個外殼)。

您還可以在zsh中重載ruby命令,以便在執行完后始終調用fc -R

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM