3

我想在 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)
  ...

有人知道为什么系统对我没有影响吗?

4

1 回答 1

5

system将启动子进程,子进程不能更改其父进程的工作目录。

快速的 Google 搜索显示 GNU AWK 文档的以下部分:http ://www.gnu.org/software/gawk/manual/html_node/Internal-File-Description.html#Internal-File-Description

这似乎暗示标准 AWK 没有更改工作目录的方法。(在 GNU AWK 中,您可以chdir按照您所见的那样进行操作。)

于 2012-09-07T10:20:53.537 回答