怎么把鼠标所点击的链接的地址作为变量传给脚本

sh/bash/dash/ksh/zsh等Shell脚本
回复
owwbu
帖子: 614
注册时间: 2006-11-15 14:14
送出感谢: 0
接收感谢: 1 次

怎么把鼠标所点击的链接的地址作为变量传给脚本

#1

帖子 owwbu » 2010-12-21 16:59

设想是这样的,点击一个链接后,执行某个脚本里头的命令。
在这个脚本里头,
先用wget下载该链接的内容——问题就在这,怎么把链接的地址作为参数传递给wget,这个脚本怎么得到我鼠标点击的链接的网址?
然后再对下载下来的东西进行一堆的后续处理。
头像
jarryson
帖子: 4002
注册时间: 2005-08-14 19:53
送出感谢: 1 次
接收感谢: 2 次
联系:

Re: 怎么把鼠标所点击的链接的地址作为变量传给脚本

#2

帖子 jarryson » 2010-12-21 17:02

必须浏览器能执行本地程序。

比如opera就可以修改右键菜单调用外部程序,传递的参数也是可以的。

除此之外除非是浏览器插件,否则无法监视
owwbu
帖子: 614
注册时间: 2006-11-15 14:14
送出感谢: 0
接收感谢: 1 次

Re: 怎么把鼠标所点击的链接的地址作为变量传给脚本

#3

帖子 owwbu » 2010-12-21 17:40

jarryson 写了:必须浏览器能执行本地程序。

比如opera就可以修改右键菜单调用外部程序,传递的参数也是可以的。

除此之外除非是浏览器插件,否则无法监视
谢谢jarryson。
头像
lilydjwg
论坛版主
帖子: 4163
注册时间: 2009-04-11 23:46
系统: Arch Linux
送出感谢: 11 次
接收感谢: 127 次
联系:

Re: 怎么把鼠标所点击的链接的地址作为变量传给脚本

#4

帖子 lilydjwg » 2010-12-21 23:47

我一般用 FireGuesture 来弄,类似的脚本(不记得是从哪里学来的了)

代码: 全选

const EXEC_PATH = "/usr/bin/google-chrome";
var linkURL = FireGestures.getLinkURL(FireGestures.sourceNode)||window.content.location.href;

var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile);
file.initWithPath(EXEC_PATH);
if (!file.exists()) {
  alert("File does not exist: " + EXEC_PATH);
  return;
}
var process  = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess);
try {
  var args = [linkURL];
  process.init(file);
  process.run(false, args, args.length);
} catch (ex) {
  alert("Failed to execute: " + EXEC_PATH);
}
当然,FireGuesture 不是必须的。
tusooa
帖子: 6546
注册时间: 2008-10-31 22:12
系统: 践兔
送出感谢: 6 次
接收感谢: 10 次
联系:

Re: 怎么把鼠标所点击的链接的地址作为变量传给脚本

#5

帖子 tusooa » 2010-12-22 18:04

写脚本,选中链接,设快捷键,脚本里面用xsel取选中内容,通过参数传递给wget
可以用
xterm -e wget "$(xsel)"
的方式执行。

代码: 全选

] ls -ld //
回复

回到 “Shell脚本”