我想在 awk 脚本中更改工作目录:
...
path="./some/path"
system("pwd") ; \
current_dir=system("pwd") ; \
pushd_cmd="pushd " path ; \ # a "cd" doesn't work too
print pushd_cmd ; \
system(pushd_cmd) ; \
system("pwd"); \ # the same directory as before
type="xml"
ls_cmd = "ls *." type; # so I can't find the files. Specifying with "./some/path/*.xml" doesn't work too (without trying to change the working directory)
...
有人知道为什么系统对我的情况不起作用吗?
最佳答案
system
将启动一个子进程,子进程不能改变其父进程的工作目录。
Google 快速搜索显示 GNU AWK 文档的以下部分:http://www.gnu.org/software/gawk/manual/html_node/Internal-File-Description.html#Internal-File-Description
这似乎暗示标准AWK 没有改变工作目录的方法。 (在 GNU AWK 中,您可以使用 chdir
来实现。)
关于bash - awk 在脚本中更改工作目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12313895/