Executa um arquivo em um aplicativo baseado na extensão do arquivo no bash

6

Depois de ler esta resposta sobre um recurso zsh:

If a given extension has a suffix alias, you can execute a file with that extention directly, and ZSH will launch the given program and pass the filename as an argument.

Existe algo semelhante ao bash? Ou seja, se um determinado arquivo tiver uma extensão, como executar diretamente esse arquivo, iniciar automaticamente um programa apenas chamando o nome do arquivo? Então fazendo

program /path/to/foo.ext

/path/to/foo.ext

equivaleria ao mesmo recurso zsh ? Este recurso está disponível em versões mais recentes do bash?

    
por Somebody still uses you MS-DOS 21.12.2010 / 19:05

3 respostas

2

Embora eu não esteja familiarizado com todos os recursos do Bash, não acredito que esse seja um recurso interno do Bash shell. Não consegui encontrar esse recurso nas seções relevantes do manual de Bash .

Você pode montar algo usando trap . De help trap :

Trap signals and other events.

Defines and activates handlers to be run when the shell receives signals or other conditions.

Assim, usando o comando:

$ trap my_function ERR

Posso garantir que my_function seja chamado sempre que um comando falhar. my_function poderia ser uma função que analisa o comando anterior, procurando extensões conhecidas e chamando o comando apropriado com base nessa extensão.

Dependendo do seu interesse, escrever essa função pode ser mais ou menos interessante do que ir para o shell z.

    
por 21.12.2010 / 23:43
3

Se você está no Linux, você pode tentar configurar o binfmt misc .

    
por 08.02.2011 / 03:21
1

Você pode usar o fish em vez do Bash. Tem a funcionalidade que você está pesquisando e muito mais interessante.

Para o seu exemplo. Basta digitar

open manual.pdf

e abre o arquivo pdf com o programa associado.

    
por 27.12.2010 / 00:00

Tags