> 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
stdinから「メッセージ」を取得し、他の静的パラメーターも使用します。困難なのは、ユーザーからの「メッセージ」パラメーターをdzen2
コマンドにパイプする必要があることですが、実際dzen2
には自分で実行しているのではなく、実行at
するように指示しています。
eval
あなたは非常に慎重に踏む必要があります潜在的なセキュリティホールの地雷原である