Bash

將 rxvt 中的點擊連結傳遞給腳本

  • June 23, 2016

我像這樣在標籤頁中啟動我的瀏覽器vimprobable

"`tabbed -d > /tmp/tabbed.xid`; vimprobable2 -e `cat /tmp/tabbed.xid`"[1]

然後,我可以通過以下方式在其他應用程序(例如 mutt)中將所有新的 vimprobable 實例發送到選項卡式(並且沒有打開新的主視窗):

vimprobable2 -e $(cat /tmp/tabbed.xid) %s

我想在 Urxvt 中實現同樣的目標。

目前 my.Xdefaults包含匹配器參數:

URxvt.perl-ext-common: default,matcher
URxvt.urlLauncher: vimprobable2
URxvt.matcher.button: 1

我已將啟動器行更改為指向包裝腳本:

URxvt.urlLauncher: vimprobtab.sh

這只是:

vimprobable2 -e $(cat /tmp/tabbed.xid) %s &

但這只會在選項卡中打開一個瀏覽器實例,其中包含預設搜尋引擎結果&(或者%s如果我刪除了與號)。

我已經嘗試過其他明顯的變數,比如"$1""$@"- 它們也不起作用。

如何將 URL 傳遞給包裝腳本?

$$ 1 $$這也感覺像是對 cat 的無用使用,因此歡迎提供其他建議

urxvt的匹配器PERL 擴展的幫助文本 指出:

當使用資源中指定的滑鼠按鈕matcher.button (預設為 2,或中間)點擊時,資源中指定的程序 matcher.launcher(預設為urlLauncher資源, sensible-browser)將以匹配的文本作為第一個參數啟動。

因此,您需要設置URxvt.matcher.launcher一個帶有單個參數的腳本(在 sh 類型的 shell 中,這是拼寫的$1)並打開它。例如:

#! /bin/sh

exec vimprobable2 -e $(cat /tmp/tabbed.xid) "$1"

*注意:*建議引用$1參數以防止 shell 解釋可能出現在 URL 中的元字元(例如, 或&;

引用自:https://unix.stackexchange.com/questions/15550