我的測試腳本:
#!/bin/bash
dirs -p >> work_note.txt
在 10 個目錄的堆疊中,我只能返回頂部的 1 個目錄dirs -p
。dirs -v
任何有關我所缺少內容的提示或知識將不勝感激。
筆記 我的主要目標是建立一個註銷過程,將 DIRSTACK 寫入文件,以便我可以回憶起我在終端中所做的工作。我通常有多個終端運行。
答案1
這DIRSTACK
是一個局部變量,不會傳遞到腳本、子 shell、子進程等。我建議使用加載到您的函數.bashrc
而不是腳本。
答案2
我使用這個技巧在每個會話中檢索我的目錄堆疊。我曾經將其保存在文件中。我還可以導入/匯出到其他終端
在 .bashrc 中定義此函數
stackd ()
{
SAVEIFS=$IFS;
IFS=$(echo -en "\n\b");
builtin cd $@ && builtin pushd "$PWD" > /dev/null;
dirs -l -p >> $HOME/.iostackd/dirstack && sort -u -o $HOME/.iostackd/dirstack $HOME/.iostackd/dirstack > /dev/null;
IFS=$SAVEIFS
}
透過別名重載你的buitin 'cd'
alias cd='stackd "$1"'