Bash别名指向Python脚本 - 可能吗?
我想把一个别名变得更高级一点,这个别名用到了 cUrl 的 -o 选项(就是把下载的内容输出到文件)。我本来可以把它做成一个 BASH 函数,但有人告诉我,直接用 Python 脚本可以避免 BASH 不同版本和风格带来的麻烦。
同时,我还有个想法,想把老版 Mac OS(也叫“OS 9”或“经典版”)的一些下载功能做成跨平台的:就是把网址写到文件管理器里能看到的某个地方,比如 Konqueror、Dolphin、Nautilus、Finder 或 Explorer。我知道只有少数几种文件类型能用其他命令行工具(像 exiv2、wrjpgcom 等)支持这种功能。对我来说没问题,因为我只用这个别名来下载单页的图片文件,比如 JPEG。
我想我可以充分利用 Python 的强大功能,让脚本把用户输入的下载源网址(先由 cUrl 使用)传给像 exiv2 这样的工具,这样它就可以把网址写到评论块、EXIF 用户评论块,还有(拿 Windows XP 的文件描述字段作为最差的例子)写进去。开始时从小做起,有时候是个不错的选择。
希望有人能给点建议或意见。
BZT
2 个回答
我原以为Pycurl可能是解决方案。啊,丹尼尔·斯特恩伯格和他那种天真的假设,认为每个人都知道他在做什么。我在讨论组里问pycurl是否有类似“curl -o”的功能,然后又问:“如果有的话,怎么在Python脚本中实现它?”他的回复是这样的:
"curl.setopt(pycurl.WRITEDATA, fp)
可能还要结合:
curl.setopt(pycurl.WRITEFUNCTION, callback) "
...并附上了Sourceforge上retriever.py的两个版本链接。我几乎记不清easy_install把我下载的那个放在哪里了;我该怎么比较它们呢?
很明显,这位先生从来没有在西半球的客服或电话技术支持工作过,在那里你得假设“客户”昨天才学会用梳子,并且准备好一步一步教他们所有的事情。简单的代码(或者带有复杂链接的三行代码)对我来说根本不够用。
BZT
来自Bash手册的相关部分提到:
别名可以让你用一个字符串替代一个词,当这个词作为简单命令的第一个词时。
所以,你可以毫无障碍地做一些事情,比如:
$ alias geturl="python /some/cool/script.py"
然后你就可以像使用其他任何命令一样使用它:
$ geturl http://example.com/excitingstuff.jpg
这样就可以直接调用你的Python程序了。