Warum wird mein Bash-Skript beim Öffnen eines neuen Tmux-Bereichs nicht als Quelle verwendet?

Warum wird mein Bash-Skript beim Öffnen eines neuen Tmux-Bereichs nicht als Quelle verwendet?

Die folgende Logik .bash_aliaseszum Entfernen doppelter Pfade funktioniert beim Öffnen eines neuen Terminals einwandfrei:

# 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

Wenn ich jedoch tmux starte oder einen neuen Bereich öffne, werden die Exporte dupliziert.
Das folgende Beispiel für einen Export wurde vor der obigen Schleife durchgeführt:

export PATH=$HOME/bin:$HOME/.local/bin:$PATH

Ergebnisse in:

/home/bob/.local/bin
/home/bob/bin
/home/bob/bin
/home/bob/.local/bin
...

Wenn ich die Ressourcen erneuere, .bash_aliaseswerden die Duplikate entfernt.
Es wird nie mehr als ein Duplikat jedes Pfads erstellt.

Ich bin für alle Ideen dankbar, was los ist, oder für Vorschläge, wie ich das Problem aufspüren kann.

Antwort1

Ich habe die Antwort direkt nach dem Posten gefunden, lasse sie aber stehen, falls jemand sie braucht.

Fügen Sie die folgende Zeile in Ihre ein .tmux.conf:

set-option -g default-command bash

verwandte Informationen