Basicamente, quero criar um conjunto rápido de comandos para que eu possa digitar no terminal e fazer o seguinte:
cd /path/to/folder/of/symlink
sudo rm -f symlink
sudo ln -s /new/path/of/symlink
cd /new/path/of/symlink
Eu trabalho para uma empresa cujo software está hospedado em um local central e usa links simbólicos para solucionar problemas criados ao trabalhar em uma filial de repositório do Subversion (ou qualquer outra coisa), já que o software depende de caminhos específicos para ser executado. Meu dilema é que tenho que alternar regularmente entre vários galhos e o tronco (várias vezes ao dia). Então, o que eu gostaria de fazer é pelo menos criar algum tipo de script que eu possa executar no terminal e inserir um exemplo de comando exclusivo:
./subchange trunk
ou
./subchange branch1
Não me importo de ter que codificar o material acima por pasta para a qual preciso mudar, ou criar um identificador exclusivo para cada uma para tornar minha vida um pouco mais fácil, mas não tenho certeza de como criar um script para que eu posso usá-lo como um comando personalizado ou que tipo de script eu precisaria usar para funcionar no Linux. Portanto, qualquer conselho/ajuda seria bom para mim neste momento.
Responder1
Se um script for executável e seu diretório pai estiver em seu arquivo $PATH
, você poderá usá-lo como um comando. Por exemplo, você pode criar um script bash a partir dos comandos mencionados:
#!/bin/bash
cd /path/to/folder/of/symlink
sudo rm -f symlink
sudo ln -s /new/path/of/symlink
cd /new/path/of/symlink
Então você pode salvá-lo como um arquivo subchange
e torná-lo executável com chmod +x subchange
. Eu tenho um diretório de scripts no meu sistema (por exemplo /tech/scripts
) que adiciono ao meu arquivo $PATH
. Muitas vezes, a variável $PATH
de ambiente é definida em um arquivo ~/.profile
, ou similar. Você pode adicionar seu diretório fazendo:~/.bashrc
/etc/bashrc
export PATH=/tech/scripts:$PATH
Se você adicionou isso a um arquivo de inicialização, precisará reiniciar seu shell ou originá-lo (por exemplo, source ~/.bashrc
). Agora você pode usar subchange
na linha de comando e ele executará esses comandos. Para adicionar um argumento ao comando você pode usar o $1
operador. No bash, isso representa o primeiro argumento, então, se eu fizer subchange trunk
isso, $1
será trunk
. Você pode então adicionar isso ao seu script conforme necessário:
#!/bin/bash
cd /path/to/folder/of/symlink
sudo rm -f symlink
sudo ln -s /new/path/$1/symlink
cd /new/path/$1/symlink
O que #!
está no topo do arquivo é chamado deShebang(ela se move... ela se move...). Para um script em um sistema unix, ele informa ao sistema em qual binário executar os seguintes comandos. Neste caso, estamos especificando /bin/bash
porque queremos executar este arquivo como comandos bash e o binário bash está em /bin
. Isso poderia especificar outro idioma e apontar para seu binário.