使用双引号/单引号发送值?

所以我有一个 ash 脚本,通过 telnet 发送命令到设备

命令看起来像这样

echo 'dofile("lcdprint.lua").lcdprint("date")' | telnet 192.168.1.23 23

我希望输出的结果是像这样的日期

星期二7月12日17:10:51 WIB2016

但是,代码运行的结果与上述输出不同

日期

我该如何发送正确的命令?输出应该包含日期值,而不是字符串“日期”。

谢谢 :)

点赞
用户45375
用户45375

如果你想在将命令字符串发送到目标机器之前将date实用程序的输出合并,可以使用 Bash 的 命令替换$(...)

echo "dofile('lcdprint.lua').lcdprint('$(date)')" | telnet 192.168.1.23 23

注意整体字符串需要使用 双引号 来确保$(...)被展开。

如果你想在目标机器上运行date,可以使用 Lua 的 os.execute() 来运行一个 shell 命令:

echo 'dofile("lcdprint.lua").lcdprint(os.execute("date"))' | telnet 192.168.1.23 23

注意整体字符串需要使用 _单引号_,因为这种情况下不需要 Bash 进行解释,并且使用单引号确保字符串按原样传递。

2016-07-12 10:34:37