所以我有一个 ash 脚本,可以通过 telnet 向设备发送命令
该命令如下所示。
echo 'dofile("lcdprint.lua").lcdprint("date")' | telnet 192.168.1.23 23
我想要这样的输出日期
Tue Jul 12 17:10:51 WIB 2016
但是代码运行时并没有出现上面的输出,而是出现意外的结果
date
如何发送正确的命令?输出应包含日期值,而不是“日期”字符串。
谢谢:)
最佳答案
如果您想合并本地执行date
实用程序的输出,在将命令字符串发送到目标计算机之前,请使用$(... )
,Bash 的 command substitution :
echo "dofile('lcdprint.lua').lcdprint('$(date)')" | telnet 192.168.1.23 23
请注意整个字符串是如何用双引号引起来的,以确保 $(...)
得到扩展。
如果你想在目标机器上运行date
,请使用Lua的os.execute()
来运行shell命令: p>
echo 'dofile("lcdprint.lua").lcdprint(os.execute("date"))' | telnet 192.168.1.23 23
请注意整个字符串如何单引号,因为在这种情况下不需要 Bash 进行解释,并且使用单引号可确保字符串按原样传递。
关于linux - 通过双引号/单引号发送值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38325966/