我有一个简单的 shell 脚本:
#!/bin/zsh
URL=$1
function findBrowser {
processName=$1
ps ax | grep "$processName" | grep -v grep | wc -l
}
CNTFF=`findBrowser "firefox"`
CNTCH=`findBrowser "chromium"`
echo "$*" > $HOME/logurls
if [ $CNTFF -ge 1 ]
then
/usr/bin/firefox "$URL"
elif [ $CNTCH -ge 1 ]
then
/usr/bin/chromium "$URL"
else
echo "No running browser instance"
fi
如果使用 URL 作为参数从命令行调用它,则一切正常。但是,如果我在 urxvt 的配置中指定脚本,则不会传递任何 URL(我正在检查 logurls)。
urxvt 的配置是
URxvt.perl-ext-common: default,matcher,clipboard
URxvt.matcher.button: 1
URxvt.urlLauncher: $HOME/bin/openurl
最奇怪的是,如果我将 urlLauncher 更改为 /usr/bin/firefox - 那么它会以某种方式打开 URL。所以看起来 URL 被传递给了 firefox,但没有传递给我的脚本。
调试的方法是什么?还是我错过了有关 urxv 的一些东西?
如果我指定/home/user/bin/openurl而不是$HOME/bin/openurl则更新效果很好