我在bash中使用目录堆栈(用dirs列出,用pushd / popd操作)。 我注意到,当我运行一个脚本时,它(可能是它自己的shell)有自己的d.s。
有没有办法访问d.s.在启动脚本的shell中?
例如,如果我想在堆栈的所有目录中执行相同的操作:
while [ $num -lt 0 ]
do
num=`expr $num - 1`
#TODO add operation here
pushd +1
done
运行此脚本只会在当前目录中执行相同的操作$ num次,因为脚本堆栈为空。
答案 0 :(得分:1)
您可以使用source
在当前bash进程的上下文中运行脚本,但要注意它所做的任何事情都会影响您的进程 - 设置变量,更改目录等等。这相当于只需输入直接的脚本行。