使用输出重定向来更改目录

问题描述 投票:0回答:1

我正在使用 BASH 并使用输出重定向将目录路径保存到文件。当我尝试使用输入重定向重新使用存储在文件中的输入时,它不起作用。

我编写了 2 个函数,一个用于重定向输出,另一个用于将输入重定向到

cd
命令。

#!/bin/bash



savepath () {


pwd > /home/user/Documents/save_path.txt

}

gotopath () {


cd < /home/user/Documents/save_path.txt

}

保存 shell 脚本并使其可执行。然后我使用源代码使自己能够在 shell 内调用我的函数。

运行第一个

savepath()
并更改为任意随机目录后,运行第二个函数应该会让我回到我运行
savepath()
的目录。它没有这样做,而是将我发送到我的主目录。

bash output-redirect
1个回答
0
投票

试试这个:

#!/bin/bash

SAVEPATH=$HOME/Documents/save_path.txt

savepath () {
    pwd > $SAVEPATH
}

gotopath () {
    cd `cat $SAVEPATH`
}

最初的实现尝试通过

stdin
传递保存的路径。这不是
cd
的工作方式:它需要目标目录作为参数。使用这种方法,文件的内容被替换为参数。

© www.soinside.com 2019 - 2024. All rights reserved.