Como posso executar um script de shell que existe em um caminho longo com um único comando sem primeiro cd'ing para o diretório?

2

No Linux eu sempre cd para um caminho longo e depois executo o script:

cd /scratch/someDir/someOthernestedDir/
./shellscriptName.sh 

Como posso evitar digitalizar esse caminho longo e depois executar o comando com um único passo?

Alguma coisa como a abaixo de qualquer caminho deve fazer o que eu quero:

executeMyCommand

P.S: Estou usando o C-shell.

[subhrcho@slc04lyo bin]$ echo $0
csh
    
por Geek 31.07.2013 / 16:11

2 respostas

4

Existem três maneiras principais de executar o seu script sem precisar especificar o caminho completo.

  1. Adicione o diretório que contém seu script ao seu $PATH . Você poderá então executar o script pelo nome de qualquer diretório, como qualquer outro programa. Se você estiver usando csh , adicione isso ao seu ~/.cshrc :

    set path = ($path /scratch/someDir/someOthernestedDir/)
    
  2. Coloque um link para o seu script em um diretório que já esteja no seu caminho. Por exemplo /usr/bin :

    ln -s /scratch/someDir/someOthernestedDir/shellscriptName.sh /usr/bin
    
  3. Faça um alias como @EightBitTony sugerido , adicione esta linha ao seu ~/.cshrc :

    alias executeMyCommand '/scratch/someDir/someOthernestedDir/shellscriptName.sh' 
    
por 31.07.2013 / 16:46
2

Aliases de comando.

alias name definition

por exemplo,

alias executeMyCommand '/scratch/someDir/someOthernestedDir/shellscriptName.sh'

A partir daqui .

Adicionando um alias de comando

Para tornar um alias de comando uma parte permanente do seu ambiente de trabalho:

  1. Edite o arquivo de inicialização do shell .cshrc e adicione a linha que define o alias.
  2. Salve as alterações e saia do editor.
  3. Origem do arquivo de inicialização do shell para que as alterações tenham efeito imediato. Por exemplo:

    source .cshrc

por 31.07.2013 / 16:16