Básicamente quiero crear un conjunto rápido de comandos para poder escribir en la terminal y hacer esto:
cd /path/to/folder/of/symlink
sudo rm -f symlink
sudo ln -s /new/path/of/symlink
cd /new/path/of/symlink
Trabajo para una empresa cuyo software está alojado en una ubicación central y utiliza enlaces simbólicos para solucionar los problemas creados al trabajar en una rama de repositorio de Subversion (o cualquier otra cosa), ya que el software depende de rutas específicas para ejecutarse. Mi dilema es que tiendo a tener que alternar entre varias ramas y el tronco de forma regular (varias veces al día). Entonces, lo que me gustaría hacer es al menos crear algún tipo de script que pueda ejecutar en la terminal e ingresar un ejemplo de comando único:
./subchange trunk
o
./subchange branch1
No me importa tener que codificar las cosas anteriores por carpeta a la que necesito cambiar, o crear un identificador único para cada una para hacer mi vida un poco más fácil, pero no estoy seguro de cómo crear realmente una secuencia de comandos para que Puedo usarlo como un comando personalizado o qué tipo de script necesitaría usar para que funcione en Linux. Entonces, cualquier consejo/ayuda sería bueno para mí en este momento.
Respuesta1
Si un script es ejecutable y su directorio principal está en su archivo $PATH
, puede usarlo como un comando. Por ejemplo, puedes crear un script bash a partir de los comandos que mencionaste:
#!/bin/bash
cd /path/to/folder/of/symlink
sudo rm -f symlink
sudo ln -s /new/path/of/symlink
cd /new/path/of/symlink
Luego puedes guardarlo como un archivo subchange
y hacerlo ejecutable con chmod +x subchange
. Tengo un directorio de scripts en mi sistema (por ejemplo /tech/scripts
) que agrego a mi archivo $PATH
. Muchas veces la variable de $PATH
entorno se establece en un archivo ~/.profile
, o similar. Puede agregar su directorio haciendo:~/.bashrc
/etc/bashrc
export PATH=/tech/scripts:$PATH
Si agregó eso a un archivo de inicio, deberá reiniciar su shell o obtenerlo (por ejemplo source ~/.bashrc
). Ahora puede usarlo subchange
en la línea de comando y ejecutará esos comandos. Para agregar un argumento al comando puede usar el $1
operador. En bash, esto representa el primer argumento, por lo que si lo hago subchange trunk
, $1
será trunk
. Luego puedes agregar esto a tu script según sea necesario:
#!/bin/bash
cd /path/to/folder/of/symlink
sudo rm -f symlink
sudo ln -s /new/path/$1/symlink
cd /new/path/$1/symlink
La #!
parte superior del archivo se llamael asunto(ella se mueve... ella se mueve...). Para un script en un sistema Unix, le dice al sistema a través de qué binario ejecutar los siguientes comandos. En este caso, lo especificamos /bin/bash
porque queremos ejecutar este archivo como comandos bash y el binario bash está en formato /bin
. Sin embargo, esto podría especificar otro idioma y señalar su binario.