mailto:在Ubuntu中使用notify msg打开谷歌浏览器

时间:2011-02-03 15:00:35

标签: google-chrome ubuntu mailto shebang

我正在编写一个小脚本,用于在Google Chrome小应用程序窗口中打开来自网页的mailto链接:

到目前为止,我有这个:

#!/bin/sh

notify-send "Opening Gmail" "`echo $1`" -i /usr/local/share/icons/hicolor/48x48/apps/google-chrome.png -t 5000
google-chrome -app="https://mail.google.com/mail/?extsrc=mailto&url=`echo $1`"

效果很好 - 但是我想将电子邮件收件人添加到通知中 - 类似这样 - 但我需要一个正则表达式来从mailto链接获取电子邮件 - 这可能包含主题等...

#!/bin/sh

$str = preg_replace('#<a.+?href="mailto:(.*?)".+?</a>#', "$1", $str);
notify-send "Opening Gmail" "`echo $str`" -i /usr/local/share/icons/hicolor/48x48/apps/google-chrome.png -t 5000
google-chrome -app="https://mail.google.com/mail/?extsrc=mailto&url=`echo $1`"

这不起作用..

任何想法?

更新:这是工作代码:

#!/bin/sh

str=$(echo $1|sed 's/.*mailto:\([^?]*\)?.*/\1/')
notify-send "Opening Gmail" "to: `echo $str`" -i /usr/local/share/icons/hicolor/48x48/apps/google-chrome.png -t 5000
google-chrome -app="https://mail.google.com/mail/?extsrc=mailto&url=`echo $1`"

2 个答案:

答案 0 :(得分:1)

如果你这样写,那不是shell:)

你能提供样本字符串来使用正则表达式吗?基本上它将是sed调用,除了地址之外应该删除所有内容。虽然根据RFC的邮件地址可能非常复杂,但简单的方法在大多数情况下都可以使用,但不是每次都有效。

尝试从

之类的东西开始
sed 's/.*mailto:\([^?]*\)?.*/\1/'

所以你可能想要这样使用它:

str=$(echo $1|sed 's/.*mailto:\([^?]*\)?.*/\1/')

答案 1 :(得分:0)

大!我得到了你的脚本并做了一些改进以更好地工作,看:

#!/bin/sh

str=$(echo $1|sed 's/.*mailto:\([^?]*\)?.*/\1/')
notify-send "Abrindo Gmail" "to: `echo $str`" -i /usr/local/share/icons/hicolor/48x48/apps/google-chrome.png -t 5000
chromium-browser "https://mail.google.com/mail/?view=cm&fs=1&tf=1&source=mailto&to=$1"