Existe uma maneira de criar um wrapper de linha de comando para um arquivo bash?

Existe uma maneira de criar um wrapper de linha de comando para um arquivo bash?

O título diz tudo. Gostaria de digitar "run" na linha de comando e ele executaria /pathtoscript/script.sh.
Obrigado!

Responder1

Crie um arquivo nomeado runcom o conteúdo:

#!/bin/sh
exec /pathtoscript/script.sh "$@"

Coloque o arquivo no seu caminho e defina o bit executável.

Qual é o “seu caminho”?

Na linha de comando, digite:

echo $PATH

Você verá uma lista de diretórios separados por dois pontos. Esses são os diretórios que o shell procura ao procurar um comando para executar. Eles são chamados coletivamente de caminho. Você desejará colocar seu novo arquivo runem qualquer um desses diretórios.

Abordagem alternativa para trabalho interativo

Se você quiser apenas runtrabalhar interativamente, poderá criar um alias:

alias run=/pathtoscript/script.sh

Se você deseja que esse alias seja salvo permanentemente, coloque essa linha em .bashrcseu diretório inicial.

Responder2

Em shells *nix, isso é feito adicionando umarquivo executável(ou link simbólico para um arquivo executável) para um dosdiretórioslistados ema PATHvariável. De uma sessão hipotética:

$ which foo
which: no foo in (/usr/local/sbin:/usr/local/bin:/usr/bin)
$ foo
bash: foo: command not found
$ echo "$PATH"
/usr/local/sbin:/usr/local/bin:/usr/bin
$ sudo ln -s /path/to/my/script /usr/local/bin/foo
$ foo
[whatever your script prints]

informação relacionada