evalで変数を宣言する方法はありますか?例えば
function test
{
eval $1
}
test "
value="foo"
echo "$value"
"
しかし、それは何も示していません。誰でも助けることができますか?
答え1
二重引用符は入れ子にすることはできません。
set -xv
シェルが実際に実行されていることを確認するために使用されます。
固定コード:
#!/bin/bash
function Test() {
eval "$1"
}
Test 'value=foo
echo $value'
パラメータはeval
二重引用符で囲まれています。引用符なしで使用できますが、前にセミコロンを挿入する必要がありますecho
。
パラメータには一重引用符が必要です。二重引用符が必要な場合は、ドル記号をエスケープ(バックスラッシュ)する必要があります。それ以外の場合は、文字列が関数に渡される前に変数が展開されます。