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 に答える