根据文件在bash中的扩展名在应用程序中执行文件

Som*_*DOS 6 bash

阅读有关 zsh 功能的答案后:

如果给定的扩展名有后缀别名,你可以直接执行带有该扩展名的文件,ZSH 将启动给定的程序并将文件名作为参数传递。

有没有类似于 bash 的东西?也就是说,如果给定的文件有扩展名,如何直接执行该文件,仅通过调用文件名自动启动程序?这样做

程序 /path/to/foo.ext

/path/to/foo.ext

将等同于相同的zsh 功能?此功能在较新版本的 bash 中可用吗?

Ste*_*n D 2

虽然我并不熟悉 Bash 的每个功能,但我不相信这是 Bash shell 的内置功能。我在Bash 手册的相关章节中找不到这个功能。

您也许可以使用 来拼凑一些东西trap。从help trap:

陷阱信号和其他事件。

定义并激活当 shell 接收到信号或其他条件时要运行的处理程序。

因此,通过使用命令:

$ trap my_function ERR
Run Code Online (Sandbox Code Playgroud)

我可以确保my_function每当命令失败时都会调用它。 my_function可以是解析先前命令、查找已知扩展并根据该扩展调用适当命令的函数。

根据您的兴趣,编写这样的函数可能比迁移到 z shell 更有趣或更不有趣。