|
|
51CTO旗下网站
|
|
移动端

1.9 命令行工具

《OpenResty完全2018送彩金的娱乐网站指南:构建百万级别并发的Web应用》第1章总论,本章将简略地介绍OpenResty 的历史、特点和组成,带领读者初步感受它的风采。本节为大家介绍命令行工具。

作者:罗剑锋来源:电子工业出版社|2018-09-23 16:48

1.9 命令行工具

OpenResty 在bin 目录下提供一个命令行工具resty(注意名字不是resty-cli),可以把它作为Lua 语言的解释器(但运行在OpenResty 环境里)代替标准的Lua 5.x,写出类似Perl、Python 那样易用的脚本,是测试/运维工程师的利器。

使用“-e”参数可以在命令行里直接执行Lua 代码,例如:

  1. ./resty -e "print('hello OpenResty')" #执行Lua 代码,打印一个字符串 

这种方式只适合执行很小的代码片段,更好的方式是利用UNIX 的“Shebang”(#!),在脚本文件里的第一行指定resty 作为解释器,能够书写任意长度和复杂度的代码,而且更利于管理维护。

刚才的命令行用法可以改写成下面的脚本文件:

  1. #!/usr/local/openresty/bin/resty -- 使用resty 作为脚本的解释器  
  2. print('hello OpenResty') -- 执行Lua 代码,打印一个字符串 

脚本文件也支持传递命令行参数,参数存储在表arg 里,用arg[N]的方式即可访问:

  1. #!/usr/local/openresty/bin/resty -- 使用resty 作为脚本的解释器  
  2. local n = #arg -- 得到参数的数量  
  3. print("args count = ", n) -- 打印参数的数量  
  4. for i = 1,n do -- 变量参数表,注意Lua 下标从1 开始  
  5. print("arg ", i , ": ", arg[i]) -- 输出参数  
  6. end -- 循环结束 

使用参数执行脚本hello.lua,结果是:

  1. ./hello.lua FireEmblem Heroes #执行Lua 代码,带两个参数  
  2. args count = 2 #打印参数的数量  
  3. arg 1: FireEmblem #输出第一个参数  
  4. arg 2: Heroes #输出第二个参数 

resty 工具还有很多选项用于配置行为,非常灵活,“-e”之外较常用的有:

  1.  -c :指定最大并发连接数(默认值是64);  
  2.  -I :指定Lua 库的搜索路径;  
  3.  -l :指定加载某个Lua 库;  
  4.  --http-conf :定制在http 域里的指令;  
  5.  --main-include :定制在main 域里的指令;  
  6.  --shdict :定制使用的共享内存(参见10.2 节);  
  7.  --resolve-ipv6 :允许解析ipv6 的地址。 

其他选项如-j、-gdb 等读者可以参考help 或者restydoc。

本书之后在讲解Lua 语言和LuaJIT 环境时均采用resty 作为解释器执行Lua 程序。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书会第9群:808517103

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

精通Spring 2.0

本书是关于Spring 2.0的权威教程,是Java/Java EE2018送彩金的娱乐网站者必备的参考书。本书详尽系统地介绍了Java EE的基础知识、Spring 2.0的各种功能,以...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
博聚网