La siguiente lógica .bash_aliases
para eliminar rutas duplicadas funciona bien al abrir una nueva terminal:
# prune duplicate paths
PATHS=("PATH" "LD_LIBRARY_PATH" "C_INCLUDE_PATH")
for P in "${PATHS[@]}"; do
source $HOME/bin/prune_paths $P
done
~/bin/prunepaths
#!/bin/bash
path_name=$1
curr_paths=${!path_name}
# split paths string into an array of paths
IFS=':' read -ra path_array <<< "$curr_paths"
# filter out duplicates and elements containing single quotes
declare -a unique_path_array=()
for element in "${path_array[@]}"; do
if [[ ! " ${unique_path_array[@]} " =~ " ${element} " ]] && [[ ! "$element" =~ "'" ]]; then
unique_path_array+=("$element")
fi
done
# concatenate unique paths
final_paths=$(IFS=':'; echo "${unique_path_array[*]}")
export $path_name=$final_paths
Sin embargo, cuando inicio tmux o abro un nuevo panel, se duplican las exportaciones.
El siguiente ejemplo de exportación se realizó antes del ciclo anterior:
export PATH=$HOME/bin:$HOME/.local/bin:$PATH
Resultados en:
/home/bob/.local/bin
/home/bob/bin
/home/bob/bin
/home/bob/.local/bin
...
Si obtengo recursos, .bash_aliases
los duplicados se eliminan.
Nunca crea más de un duplicado de cada ruta.
Cualquier idea sobre lo que está pasando o sugerencias sobre cómo puedo localizar el problema sería muy apreciada.
Respuesta1
Encontré la respuesta justo después de publicarla, pero la dejaré por si alguien la necesita.
Pon la siguiente línea en tu .tmux.conf
:
set-option -g default-command bash