2013-08-01 57 views
1

我在學習如何使用Lua模塊。我一直在閱讀以下手冊:嘗試使用Lua模塊在命令行上失敗

http://lua-users.org/wiki/ModulesTutorial

不幸的是,我甚至無法獲得的第一個例子努力!我已經做了以下內容:

創造了一個「mymodule.lua」文件,該文件是這樣的:

local mymodule = {} 

function mymodule.foo() 
    print("Hello World!") 
end 

return mymodule 
命令行

然後,在mymodule.lua文件所在的文件夾中,我試着做到以下幾點:

mymodule = require "mymodule" 

,但我得到了以下錯誤消息:

myserver:/usr/share/x/research/# mymodule = require "mymodule" 
-ash: mymodule: not found 

這工作:

myserver:/usr/share/x/research/# local mymodule = require "mymodule" 

但是當我嘗試運行失敗,像這樣把foo()方法:

myserver:/usr/share/x/research/# mymodule.foo() 
-ash: syntax error: bad function name 
myserver:/usr/share/x/research/# 

而且我想這是有道理的,因爲我宣佈MyModule的地方,而不是全球性的命令行。

我想我的問題是爲什麼我不能在命令行中聲明全局模塊。
手冊說我應該從「交互式解釋器」運行。我在linux中使用標準的命令行/終端窗口......這可能是問題嗎?我通常必須將所有lua命令加上「lua」的前綴。

任何建議,將不勝感激。

+3

首先在shell中運行'lua',這就是解釋器。 –

回答

2

lua不是你的外殼。你需要在lua中間件內運行該代碼,而不是在shell提示符下運行。

myserver:/usr/share/x/research/# lua 
Lua 5.1.4 Copyright (C) 1994-2008 Lua.org, PUC-Rio 
> mymodule = require "mymodule" 
> mymodule.foo() 
+0

我只是用相同的評論更新我的問題。但我不知道如何啓動翻譯...謝謝! – dot

+0

工作。我是一個lua/linux新手!再次感謝。 – dot

+0

如果你在一個文件中有你的「腳本」代碼(使用模塊的代碼),你也可以直接使用lua file.lua來直接運行它。 –

相關問題