我需要更改 lua 脚本中的当前工作目录以执行特定操作,但我无法完成这个简单的任务。 我写测试脚本 test.lua :
os.execute("cd /usr")
os.execute("ls")
但是lua test.lua输出是:
test.lua
当前目录没有改变。怎么了?而且我不能使用 LFS 或任何非标准模块。
感谢大家解释情况。我选择了另一种方式:在运行 lua 脚本之前更改工作目录,但是我在脚本中使用的路径和脚本中遇到了很多麻烦。
最佳答案
在 Unix 上,os.execute()
生成一个子进程及其子进程。在
jpjacobs 的回答,第一个进程将执行 shell。
目录更改操作只影响子进程,不影响子进程 Lua 解释器正在执行您的程序的过程。
关于Lua 更改当前/工作目录,Linux(没有 LFS 或任何非标准模块),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8561659/