> echo "hi"
hi
> VAR='echo "hi"'
> $VAR
"hi"
为什么上述命令的输出不同?
单引号也会发生类似的情况:
> VAR="echo 'hi'"
> $VAR
> 'hi'
@ jw013好点,很棒的文章。我喜欢引用“变量保存数据,函数保存代码”。从第一个链接开始,但就我的使用而言,提供给函数(在本例中为
—
科里·克莱因
at
)的数据是代码。有什么技巧可以安全地组织/收集代码at
?
at
将sh
语法作为输入。因此,生成输入at
意味着sh
从任意输入生成有效的,正确引用的语法,这并非微不足道,因此,我将尽可能避免使用它。如果您可以提供更多有关要完成的目标的详细信息,那将真正有帮助。
抱歉,我不想分散太多细节,但是IMO,我所做的并不是很复杂。我正在创建一个需要“时间”和“消息”的脚本。然后
—
科里·克莱因
at
,它会在给定的“时间” at
内运行,并告诉您运行命令dzen2
。 dzen2
从标准输入中获取“消息”,还使用其他一些静态参数。困难在于我需要将用户的“ message”参数传递到dzen2
命令中,但是我实际上并没有在运行dzen2
自己,而是在告诉我at
这样做。
eval
是潜在安全漏洞的雷区,您必须非常小心