Executando um script sempre que outro script é executado ou modificando um script de pacote

0

Eu tenho uma pergunta em duas partes. Primeiro, existe um método para executar um script sempre que outro script (particular) é executado?

Em segundo lugar, criei um script que estou usando para "substituir" o script 'cd' do pacote. No entanto, fiz isso usando aliases e estou pensando se existe uma maneira melhor (mais adequada) para fazer isso, ou para o caso de o meu método causar erros no caminho.

Permita-me explicar meu script ... sempre que "cd" for solicitado a se mover para um diretório inexistente, ele fornecerá ao usuário a opção de realocar o diretório "mais profundo" existente no caminho digitado. Seria mais fácil com um exemplo ...

Digamos que eu digite:

cd /var/www/html/foo

e que / var / www / html / foo não existe, mas o / var / www / html faz. o usuário seria perguntado se gostaria de prosseguir para / var / www / html.

Consegui fazer isso acontecer usando um alias e o seguinte script:

   #!/bin/bash
   cd $*
   <code to check if valid, et cetera>

No entanto, isso é feito usando

   alias cd='cdImproved'

Como tal, eu não tenho certeza se vou me deparar com algum problema em fazer isso no caminho, ou se há uma maneira mais 'adequada' de fazer a mesma coisa.

    
por Wipqozn 21.02.2011 / 19:05

1 resposta

0

Estou assumindo que esse cd &* é um erro de digitação e você quer dizer isso: cd $* . Além disso, isso não deve ter espaços ao redor do sinal de igual: alias cd='cdImproved' .

Você não pode cd em um script que você executa normalmente e tem o novo diretório definido para o shell atual. Você tem que usar um alias, uma função ou fonte do script.

Você certamente pode definir sua função ou alias em um arquivo e informar que, em cada script, deseja utilizá-lo. Esse seria o caminho a percorrer. Como cd é um shell embutido, você teria que modificar o shell ou criar um built-in carregável para alterar seu comportamento globalmente.

Para usar aliases em um script, você terá que ativar esse recurso no script:

shopt -s expand_aliases
    
por 21.02.2011 / 19:56

Tags