我的测试脚本:
#!/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"'