我有一个文件,其中包含格式的键/值对
TAG PATH
. 现在,我想编写一个程序,从命令行读取TAG ,并将调用bash的当前工作目录更改为相应的PATH。
我该怎么办?
您可能会考虑类似(可能在您的 bash函数中)
while read tagname dirname ; do
pushd $dirname ;
dosomethingwith $tagname
popd
done < yourinputfile.txt
请参阅此问题(关于read
bash)并阅读高级 bash 脚本指南
GNU awk可能是一个更好的工具。
请注意,您只能使用chdir(2)系统调用(由cd
orpushd
或popd
bash builtins调用)更改当前进程的当前目录。无法更改某些其他进程的目录(例如父进程或调用进程)。和builtinspushd
还popd
更新 bash目录堆栈。
无法更改调用 shell(在终端中运行的父进程)的当前目录。但是你可以在那里定义你自己的 bash 函数。阅读高级 Linux 编程以了解有关Unix 进程的更多信息