Bash别名指向Python脚本 - 可能吗?

5 投票
2 回答
15485 浏览
提问于 2025-04-15 19:23

我想把一个别名变得更高级一点,这个别名用到了 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 个回答

0

我原以为Pycurl可能是解决方案。啊,丹尼尔·斯特恩伯格和他那种天真的假设,认为每个人都知道他在做什么。我在讨论组里问pycurl是否有类似“curl -o”的功能,然后又问:“如果有的话,怎么在Python脚本中实现它?”他的回复是这样的:

"curl.setopt(pycurl.WRITEDATA, fp)

可能还要结合:

curl.setopt(pycurl.WRITEFUNCTION, callback) "

...并附上了Sourceforge上retriever.py的两个版本链接。我几乎记不清easy_install把我下载的那个放在哪里了;我该怎么比较它们呢?

很明显,这位先生从来没有在西半球的客服或电话技术支持工作过,在那里你得假设“客户”昨天才学会用梳子,并且准备好一步一步教他们所有的事情。简单的代码(或者带有复杂链接的三行代码)对我来说根本不够用。

BZT

19

来自Bash手册的相关部分提到:

别名可以让你用一个字符串替代一个词,当这个词作为简单命令的第一个词时。

所以,你可以毫无障碍地做一些事情,比如:

$ alias geturl="python /some/cool/script.py"

然后你就可以像使用其他任何命令一样使用它:

$ geturl http://example.com/excitingstuff.jpg

这样就可以直接调用你的Python程序了。

撰写回答