成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用 Lua 解析參數

系統 Linux
參數對于交互式計算至關重要,Lua 編程語言提供了?{...}?表達式來封裝在啟動 Lua 腳本時給定的可變參數。

大多數計算機命令由兩部分組成:命令和參數。命令是要執行的程序,而參數可能是命令選項或用戶輸入。如果沒有這種結構,用戶將不得不編輯命令的代碼,以改變命令所處理的數據。想象一下重寫 ??printf??? 命令只是為了讓你的計算機用 “hello world” 消息問候你。參數對于交互式計算至關重要,??Lua 編程語言??? 提供了 ??{...}?? 表達式來封裝在啟動 Lua 腳本時給定的可變參數。

在 Lua 中使用參數

幾乎每一個給計算機的命令都假定一個參數,即使它期望參數是一個空列表。 Lua 會記錄啟動后寫入的內容,即使你可能對這些參數不做任何操作。要在 Lua 啟動時使用用戶提供的參數,請迭代 ??{...}?? 表:

local args = {...}for i,v in ipairs(args) do    print(v)end

運行代碼:

$ lua ./myargs.lua$ lua ./myargs.lua foo --bar bazfoo--barbaz----

參數是不安全的,Lua 會完全按照輸入的方式打印所有參數。

解析參數

對于簡單的命令,Lua 的基本功能足以解析和處理參數。這是一個簡單的例子:

-- setuplocal args = {...}-- enginefunction echo(p)   print(p)end-- gofor i,v in ipairs(args) do  print(i .. ": " .. v)endfor i,v in ipairs(args) do  if args[i] == "--say" then    echo("echo: " .. args[i+1])  endend

在 ??setup?? 部分,將所有命令參數轉儲到名為 ??args?? 的變量中。

在 ??engine?? 部分,創建一個名為 ??echo?? 的函數,用于打印你“輸入”其中的任何內容。

最后,在 ??go?? 部分,解析 ??args?? 變量(用戶在啟動時提供的參數)中的索引和值。在此示例代碼中,為清楚起見,第一個 ??for?? 循環僅打印每個索引和值。

第二個 ??for?? 循環使用索引來檢查第一個參數,它被假定是一個選項。此示例代碼中唯一有效的選項是 ??--say??。如果循環找到字符串 ??--say??,它會調用 ??echo?? 函數,并將當前參數的索引 加 1下一個 參數)作為函數參數提供。

命令參數的分隔符是一個或多個空格。運行代碼查看結果:

$ lua ./echo.lua --say zombie apocalypse1: --say2: zombie3: apocalypseecho: zombie

大多數用戶都知道在向計算機發出命令時空格很重要,因此在這種情況下刪除第三個參數是預期的行為。下面是演示兩種有效“轉義”方法的變體:

$ lua ./echo.lua --say "zombie apocalypse"1: --say2: zombie apocalypseecho: zombie apocalypse$ lua ./echo.lua --say zombie\ apocalypse1: --say2: zombie apocalypseecho: zombie apocalypse

解析參數

手動解析參數簡單且無依賴性。但是,你必須考慮一些細節。大多數現代命令都允許使用短選項(例如,??-f??)和長選項(??--foo??),并且大多數命令都提供 ??-h?? 或 ??--help?? 或者在沒有所需參數時顯示幫助菜單。

使用 ??LuaRocks?? 可以輕松安裝其他庫。有一些非常好的工具,例如 ??alt-getopt??,它們為解析參數提供了額外的基礎設施。

責任編輯:龐桂玉 來源: Linux
相關推薦

2011-08-29 16:37:21

Lua協同線程

2011-08-23 11:25:40

LUA函數TOC

2022-11-10 09:05:18

Lua配置文件

2011-08-22 18:00:53

Lua語言

2019-07-25 09:15:36

Python參數命令

2011-08-24 15:22:09

2011-08-30 11:00:10

MySQL ProxyLua

2011-08-31 15:59:10

LUAWeb 開發

2011-08-23 17:33:08

LuaMetatable

2011-08-29 15:58:51

Lua函數

2011-08-31 16:47:07

Lua調試器

2011-09-06 17:12:25

Lua腳本C++封裝庫

2011-08-25 16:38:06

EditPluslua

2013-12-08 20:32:32

WaxLua

2023-06-08 17:20:37

Lua樹莓派

2011-08-23 13:15:37

LUAPackage

2021-04-05 17:22:13

Lua文件數據編程語言

2011-08-31 15:41:38

Lua解釋器

2011-08-23 09:44:28

LUA腳本

2010-03-04 10:56:52

JVM參數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久69精品久久久久久久电影好 | 中文字幕精品一区二区三区精品 | 91综合在线视频 | 91久久精品视频 | 激情黄色在线观看 | 国产一区二区三区视频免费观看 | 精品一区二区三 | 犬夜叉在线观看 | а天堂中文最新一区二区三区 | 日本久久久久久久久 | 日韩免费视频 | 一级黄色片毛片 | 91视频免费在观看 | 亚洲精品一区二区三区蜜桃久 | 艹逼网 | 偷派自拍 | 黄色av一区 | 在线播放中文 | 亚洲一区二区三区四区五区中文 | 亚洲综合在线视频 | 日韩欧美专区 | av中文字幕在线 | 91av视频在线播放 | 国产精品视频yy9299一区 | 高清国产午夜精品久久久久久 | 天天视频一区二区三区 | 日韩精品网站 | 欧美日韩一区二区三区不卡视频 | 一区在线观看视频 | 午夜寂寞影院列表 | 精品国产91乱码一区二区三区 | 国产在线一区二区三区 | 毛片毛片毛片毛片毛片 | 日韩精品一区二区三区中文字幕 | 91av视频 | 亚洲夜夜爽 | 国产精品一二三区在线观看 | 91国在线视频 | 99re视频在线免费观看 | 亚洲一区二区在线播放 | 美女福利网站 |