【发布时间】:2013-10-22 08:23:27
【问题描述】:
我正在尝试运行一个 SSH 命令,该命令将调用远程机器上的脚本,该脚本将一些 Lua 代码写入文件。
我有这个在 bash 下执行的脚本命令:
ssh bob writelua.sh '{version=1,{["foo"]=17}}'
而writelua.sh 看起来像这样:
echo "return $1" > bar.lua
然而,最终结果是bar.lua 具有以下内容:
return version=1
我原以为单引号会阻止所有解释。如何编辑脚本并转义以通过原始 Lua 代码安然无恙?
【问题讨论】:
-
有多个点可以解释,因此对于每个点,可能需要一层转义:
ssh bob "writelua.sh '{version=1,{[\"foo\"]=17}}'"(或ssh bob 'writelua.sh "{version=1,{[\"foo\"]=17}}"') -
也许它又经历了一层“解释”。您是否尝试转义单引号(即,
'{version=1,{["foo"]=17}}\')