通过双qoute /单qoute发送价值?

所以我有一个通过telnet发送命令给设备的ash脚本
这个命令看起来像这样。

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

我想要这样的输出date

 Tue Jul 12 17:10:51 WIB 2016 

但是,而不是上述输出,代码运行意外与此结果

 date 

我如何发送正确的命令? 输出应该包含date值,而不是“date”string。
谢谢 :)

如果你想合并本地执行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的解释,并且使用单引号可以确保字符串按原样传递。