を見て事はLUA_INIT
である(またはLUA_INIT_5_3
、...)環境変数:オプション-E
なしで呼び出さ
、環境変数LUA_INIT_5_3
(またはLUA_INIT
のインタプリタをチェックし、バージョン名がない場合には定義された)。可変コンテンツのフォーマットが@filename
の場合、lua
がファイルを実行します。それ以外の場合は、lua
が文字列自体を実行します。
- https://www.lua.org/manual/5.3/manual.html#7
あなたは機能の固定されたリストを持っている場合、あなたは、単にファイルを作成することができますし、そのファイルに自分の関数を入れて、のいずれかを設定する(例えば、${HOME}/.lua_init.lua
をWindows上で多分%APPDATA%\something
または%USERPROFILE%\something
を試してみてください。) LUA_INIT
という環境変数がそのファイルを指し、ファイルパスの先頭に '@'が付いています。 unixoid OSENのための小さな例:
$ cd # just to ensure that we are in ${HOME}
$ echo "function ping() print 'pong' end" >> .lua_init.lua
$ echo 'export LUA_INIT="@${HOME}/.lua_init.lua"' >> .profile
$ source .profile
$ lua
Lua 5.3.3 Copyright (C) 1994-2016 Lua.org, PUC-Rio
> ping()
pong
(Windowsの場合、以下のEgor Skriptunoffによってコメントを参照してください。)
あなたは自動的にカレントディレクトリからのものをロードしたい場合は、それが困難になります。簡単な方法は上記を設定し、次に例を追加することです。
-- autoload '.autoload.lua' in current directory if present
if io.open(".autoload.lua") then -- exists, run it
-- use pcall so we don't brick the interpreter if the
-- file contains an error but can continue anyway
local ok, err = pcall(dofile, ".autoload.lua")
if not ok then print("AUTOLOAD ERROR: ", err) end
end
-- GAPING SECURITY HOLE WARNING: automatically running a file
-- with the right name in any folder could run untrusted code.
-- If you actually use this, add a whitelist of known-good
-- project directories or at the very least blacklist your
-- downloads folder, /tmp, and whatever else might end up
-- containing a file with the right name but not written by you.
,LUA_INIT
ファイル。すると、自動的にロードされ、必要に応じて.autoload.lua
dofile
そのSまたはrequire
のファイルを作成するためのプロジェクト/ディレクトリに固有の機能を取得するには、関数を定義して、...(フォルダごとに余分なファイルを必要としない)
ファンシーなソリューションになります実行するのは難しいですが、必要なものを構築するために任意のLuaコードを実行することができます。
Windowsの場合:コントロールパネル - >システム - >環境 - >環境変数 - >ボタン "新規" - >変数名 'LUA_INIT'と変数値' @%USERPROFILE%\ auto load.lua'を設定し、 "OK" "ボタンを押して、ファイル' notepad "%USERPROFILE%\ auto load.lua"を編集して保存してください。 ** fresh ** Windowsコンソールウィンドウを開く(既に開いているコンソールウィンドウには新しい環境変数は表示されません)、 'lua.exe'を実行してください。あなたのファイル 'auto load.lua'はすでにLuaにロードされており、そこに定義されているすべての関数が利用できます。 –