Link simbólico com opção

3

É possível criar um link simbólico para um executável que o execute com uma certa opção / argumento?

Eu sei que uma solução seria criar um script bash em um dos diretórios PATH, mas posso consegui-lo de alguma forma com um link simbólico?

EDIT: Obrigado pelas respostas, no meu caso um alias não iria fazer o trabalho porque eu estou procurando uma maneira de iniciar o matlab do dmenu e pelo menos no arco matlab só é invocável a partir de um terminal no início. Como o dmenu não considera aliases, isso não funcionaria .. eu deveria ter deixado meu problema mais claro.

    
por philx_x 20.12.2016 / 13:04

2 respostas

3

Não, um link simbólico é um tipo de arquivo que faz referência ao caminho de outro arquivo.

Agora, se você fizer isso:

ln -s /bin/cat foo

E invoque foo como:

$ ./foo -A /proc/self/cmdline
./foo^@-A^@/proc/self/cmdline^@

Você notará que o argumento primeiro que cat / foo recebeu foi ./foo e não cat . Então, de certa forma, através desse link simbólico, nós tivemos cat recebendo um diferente primeiro argumento. Isso provavelmente não é o que você tinha em mente para o seu primeiro argumento.

Usar um wrapper de script de shell é a maneira típica de endereçá-lo. Você não precisa usar bash para isso. O padrão do seu sistema sh será mais que suficiente para isso:

#! /bin/sh -
exec /path/to/my/executable --extra-option "$@"

Outras opções incluem a definição de uma alias ou função no seu ~/.bashrc / ~/.zshrc ... para ela

    
por 20.12.2016 / 13:18
0

Pelo que eu entendi, você quer, digamos, por exemplo, chamar script.sh e fazê-lo executar script.sh arg1 , então você pode fazer isso com alias, como grep no linux, na verdade quando você o chama no ubuntu chamando grep --color = auto.

Para isso crie um alias, e coloque-o no arquivo correto dependendo da sua distribuição, por exemplo no ubuntu você pode colocar em ~/.bashrc file

alias grep='grep --color=auto'
alias script.sh='script.sh arg1'

para mais informações: link

    
por 20.12.2016 / 13:18