我正在使用 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()
的目录。它没有这样做,而是将我发送到我的主目录。
试试这个:
#!/bin/bash
SAVEPATH=$HOME/Documents/save_path.txt
savepath () {
pwd > $SAVEPATH
}
gotopath () {
cd `cat $SAVEPATH`
}
最初的实现尝试通过
stdin
传递保存的路径。这不是 cd
的工作方式:它需要目标目录作为参数。使用这种方法,文件的内容被替换为参数。