Shell编程进阶:从目录栈到数组与类型设置的深度探索
1. 目录栈的实现:pushd与popd函数
在日常的UNIX使用中,pushd和popd函数是非常实用的工具,它们实现了一个目录栈,让你可以临时切换到其他目录,同时让shell记住你之前所在的位置。虽然C shell包含这些函数,但Korn shell却没有,我们可以将它们实现为shell函数。
1.1 栈的概念
栈是一种“后进先出”(LIFO)的数据结构,可以想象成自助餐厅里的弹簧餐盘架。当你把盘子放在架子上时,弹簧会压缩,使顶部大致保持在同一水平。最后放在栈上的盘子是第一个被拿走的。在计算机科学中,将东西放入栈中称为“压入”(push),从栈顶取出东西称为“弹出”(pop)。
1.2 pushd和popd的工作原理
- pushd:第一次调用
pushd dir时,会切换到dir目录,并将当前目录和dir依次压入栈中;后续调用时,切换到dir目录并将dir压入栈。 - popd:从栈顶移除一个目录,显示新的栈顶目录,然后切换到该目录。
以下是一个pushd和popd的使用示例:
| Command | Stack Cont