為什麼開啟新的 tmux 窗格時未取得我的 bash 腳本?

為什麼開啟新的 tmux 窗格時未取得我的 bash 腳本?

.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

相關內容