Bash
將 rxvt 中的點擊連結傳遞給腳本
我像這樣在標籤頁中啟動我的瀏覽器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 的無用使用,因此歡迎提供其他建議
當使用資源中指定的滑鼠按鈕
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 中的元字元(例如, 或&
);
。