linux - 通过双引号/单引号发送值?

标签 linux bash lua ash

所以我有一个 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/

相关文章:

linux - 人类可读格式的文件大小

linux - BogoMips 是如何在 linux 内核中计算的?

Mysql查询使用自动增量获取表的最大值

linux - 使用不同的用户在另一个 shell 脚本中运行 shell 脚本

macos - Lua 在 Mac OS X 中的实际用途有哪些?

c++ - lua + 视觉 C++ 2008 : fatal error LNK1107

java - 内存映射文件的性能特点

c - 忽略信号的不同方法?

linux - sshpass 中的多个密码

html - 电晕sdk网站背景