Почему мой bash-скрипт не запускается при открытии новой панели tmux?

Почему мой bash-скрипт не запускается при открытии новой панели tmux?

Следующая логика .bash_aliasesудаления дубликатов путей отлично работает при открытии нового терминала:

# 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

Однако, когда я запускаю tmux или открываю новую панель, он дублирует экспорты.
Следующий пример экспорта сделан до цикла выше:

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

Результаты в:

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

Если я переиспользую ресурсы, .bash_aliasesдубликаты удаляются.
Он никогда не создает более одного дубликата каждого пути.

Буду очень признателен за любые идеи о том, что происходит, или предложения о том, как можно отследить проблему.

решение1

Я нашел ответ сразу после публикации, но оставлю его на всякий случай, если кому-то понадобится.

Добавьте следующую строку в свой файл .tmux.conf:

set-option -g default-command bash

Связанный контент