GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo agregar limpiamente a $path?

Me gustaría encontrar una forma de agregar cosas a $PATH, en todo el sistema o para un usuario individual, sin tener que agregar la misma ruta varias veces.

Una razón para querer hacer esto es que se pueden hacer adiciones en .bashrc , que no requiere inicio de sesión y también es más útil en sistemas que usan (por ejemplo) lightdm , que nunca llama a .profile .

Soy consciente de las preguntas relacionadas con cómo limpiar duplicados de $PATH, pero no quiero eliminar duplicados . Me gustaría una forma de agregar rutas solo si aún no están presentes.

Respuesta aceptada:

Supongamos que la nueva ruta que queremos agregar es:

new=/opt/bin

Luego, usando cualquier shell POSIX, podemos probar para ver si new ya está en la ruta y agréguelo si no lo está:

case ":${PATH:=$new}:" in
    *:"$new":*)  ;;
    *) PATH="$new:$PATH"  ;;
esac

Tenga en cuenta el uso de dos puntos. Sin los dos puntos, podríamos pensar que, digamos, new=/bin ya estaba en la ruta porque el patrón coincidía con /usr/bin . Si bien los PATH normalmente tienen muchos elementos, también se manejan los casos especiales de elementos cero y uno en el PATH. El caso de la RUTA que inicialmente no tiene elementos (estando vacía) se maneja mediante el uso de ${PATH:=$new} que asigna PATH a $new si está vacío. Establecer valores predeterminados para los parámetros de esta manera es una característica de todos los shells POSIX:consulte la sección 2.6.2 de los documentos POSIX).

Una función invocable

Para mayor comodidad, el código anterior se puede poner en una función. Esta función se puede definir en la línea de comandos o, para que esté disponible de forma permanente, se puede colocar en el script de inicialización de su shell (para los usuarios de bash, sería ~/.bashrc ):

pupdate() { case ":${PATH:=$1}:" in *:"$1":*) ;; *) PATH="$1:$PATH" ;; esac; }

Para usar esta función de actualización de ruta para agregar un directorio a la RUTA actual:

pupdate /new/path

Linux
  1. Cómo agregar varios hosts en phpMyAdmin

  2. Cómo agregar un usuario a un grupo en Linux

  3. ¿Cómo agregar correctamente una ruta a la ruta?

  4. Linux - Ldd no encuentra la ruta, ¿cómo agregar?

  5. ¿Cómo podría agregar dir a $PATH en Makefile?

Cómo agregar un usuario a un grupo en Linux

Cómo agregar un directorio a PATH en Linux

Cómo agregar almacenamiento externo a ownCloud 9

Cómo agregar un directorio a PATH en Linux [Consejo rápido]

Cómo agregar una ruta en Linux

Linux:agregar un directorio a PATH