相关疑难解决方法(0)

在Lua中使用%q来逃避shell参数有多好?

假设我们需要将一些参数传递给shell命令.(让我们假设一个Bourne兼容shell.)

例如,假设我们要He said "It's a boy"; sure使用echo(1)打印字符串.

当然,我们不能这样做:

s = [[He said "It's a boy"; sure]]
os.execute("echo " .. s)
Run Code Online (Sandbox Code Playgroud)

但以下工作正常:

s = [[He said "It's a boy"; sure]]
os.execute(("echo %q"):format(s))
Run Code Online (Sandbox Code Playgroud)

我的问题:您认为使用%q引用shell参数是否足够好?

我已经知道%q如果我们的参数包含换行符(它将转换为斜杠+换行符,这意味着shell将看不到任何字符;但至少它不会破坏命令)并不是很好.这是针对我们的一个案例.还有其他情况%q会让我们失望吗?

shell lua

5
推荐指数
2
解决办法
801
查看次数

标签 统计

lua ×1

shell ×1