【问题标题】:Send value through double qoute/single qoute?通过双引号/单引号发送值?
【发布时间】:2016-07-12 10:14:59
【问题描述】:

所以我有一个通过 telnet 向设备发送命令的 ash 脚本
命令如下所示。

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

我想要这样的输出日期

Tue Jul 12 17:10:51 WIB 2016

但不是上面的输出,代码会以这个结果意外运行

date

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

【问题讨论】:

  • 谢谢 mklement0,它正在工作!确实,我正在使用带有 lua 语言的 nodemcu 固件

标签: linux bash lua ash


【解决方案1】:

如果你想合并本地执行date实用程序的输出,在将命令字符串发送到目标机器之前,使用$(...),Bash的command substitution

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 解释,并且使用单引号可以确保字符串按原样传递。支持>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-17
    • 2012-12-13
    • 1970-01-01
    • 2019-07-20
    • 1970-01-01
    • 2020-05-23
    • 2012-12-30
    • 2013-12-14
    相关资源
    最近更新 更多