Nginx:当找不到特定文件时执行带有参数的shell脚本

问题描述 投票:0回答:1

当找不到特定文件时,我想执行带有参数的Shell脚本(404)。

作为起点,我使用以下代码段:

location ~* ^/(?<bz2file>.+\.bz2)$ {
  log_by_lua_block {
    os.execute("/usr/local/bin/script")
  }
}

但是我不知道,当文件不存在时,如何仅运行此文件。

据我所读,os.execute也不允许参数?

nginx lua
1个回答
0
投票

您可以尝试以只读方式打开文件,并且如果io对象不是nil且存在,则表示文件存在。 (但是请确保释放对象,否则lua将保留您的文件,直到应用程序运行为止。)

os.execute在shell中调用给定的命令,它本身的函数没有任何其他参数。但是,您可以在执行命令的单个字符串中传递命令行参数,它可以很好地工作,就像使用终端应用程序执行命令一样。使用参数运行os.execute的示例是:

© www.soinside.com 2019 - 2024. All rights reserved.