2016-07-12 2 views
2

だから私は、テルネット経由でデバイスにコマンドを送信する灰のスクリプトを持っています
コマンドは次のようになります。
ダブルqoute /シングルqouteで値を送信しますか?

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

私は私が正しいコマンドを送信するにはどうすればよい

date 

この結果と、コードの実行が予期しない、この

Tue Jul 12 17:10:51 WIB 2016 

しかし、その代わりに上記の出力のような出力の日付をしたいですか?出力には 'date'文字列ではなく、日付値が含まれている必要があります。
ありがとう:)

+1

mklement0ありがとうございました! 確かに、私はlua言語でnodemcuファームウェアを使用しています – Dika

答えて

3

あなたが$(...)を使用して、ターゲットマシンにコマンド文字列を送信する前に、dateユーティリティを実行するローカルからの出力を組み込みたい場合は、バッシュのcommand substitution

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

注意どのように全体の文字列二重引用$(...)が展開されていることを確認します。全体的な文字列が単一引用符で囲まれを、ないので、解釈がどのように

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

注:ターゲットマシンdateを実行したい場合は

、シェルコマンドを実行するのLuaのos.execute()を使用この場合、Bashによって必要とされ、一重引用符を使用すると、文字列がそのまま渡されます。

関連する問題