当找不到特定文件时,我想执行带有参数的Shell脚本(404)。
作为起点,我使用以下代码段:
location ~* ^/(?<bz2file>.+\.bz2)$ {
log_by_lua_block {
os.execute("/usr/local/bin/script")
}
}
但是我不知道,当文件不存在时,如何仅运行此文件。
据我所读,os.execute
也不允许参数?
您可以尝试以只读方式打开文件,并且如果io对象不是nil
且存在,则表示文件存在。 (但是请确保释放对象,否则lua将保留您的文件,直到应用程序运行为止。)
os.execute
在shell中调用给定的命令,它本身的函数没有任何其他参数。但是,您可以在执行命令的单个字符串中传递命令行参数,它可以很好地工作,就像使用终端应用程序执行命令一样。使用参数运行os.execute的示例是: