Gostaria de saber se existe um equivalente Unix para a variável de ambiente do Windows PATHEXT
.
Para aqueles sem fundo do Windows: Adicionar um sufixo de arquivo para PATHEXT
permitir a execução de um script sem digitar esse sufixo em cmd.exe. Por exemplo, no meu computador com Windows, PATHEXT contém o sufixo .pl
e, quando quero executar um script Perl no cmd.exe, simplesmente digito my-script
e ele é executado. No entanto, a fim de executar o mesmo script em bash, eu preciso escrever o nome completo: my-script.pl
.
Como trabalho atualmente no Windows e no Unix, quase sempre caio na armadilha de esquecer de digitar o sufixo ao ir para uma caixa do Unix novamente.
shell
environment-variables
René Nyffenegger
fonte
fonte
.sh
preceder.pl
,foo.sh
será executado. stackoverflow.com/a/7839178/180275Respostas:
curto: não
mais: os scripts de shell requerem um nome de arquivo completo, mas você pode definir aliases para que seus comandos se refiram a eles por vários nomes. Por exemplo
fonte
A solução mais simples é simplesmente não usar extensões para seus scripts. Eles não são necessários e servem apenas para identificar o tipo de script para você, mas não para o computador. Enquanto o Windows usa extensões para identificar o tipo de arquivo, os sistemas * nix (com muito poucas exceções, como
gzip
) não o fazem.Observe que os binários não têm
.exe
extensão no * nix, eles são chamados apenasfoo
, nãofoo.exe
. Portanto, se você quiserfoo.pl
ser executável comofoo
, simplesmente salve o arquivo comofoo
em primeiro lugar.Como alternativa, se você realmente precisa ter as extensões por algum motivo, entre no diretório em que salvar seus scripts e execute:
Isso irá percorrer todos os arquivos com extensões e, para cada arquivo
foo.ext
, criará um link chamado para ofoo
qual apontafoo.ext
. Observe que isso falhará se você tiver vários scripts com o mesmo nome, mas com extensões diferentes.fonte
Se você realmente quer fazer isso, existe um caminho. Adicione o seguinte no final do
.bashrc
seu diretório pessoal e defina osPATHEXT
nomes das extensões com pontos separados por:
. (Alterado para incluir os pontos para corresponder ao comportamento do Windows.) Use-o por sua conta e risco.Lembre-se também de que você pode usar tab para concluir o nome do comando se não houver outro comando também começando
my-script
.fonte