動作する次のコードがあります。
get_parameter ()
{
echo "$query" | sed -n 's/^.*name=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"
}
しかし、「name」をget_parameterに渡されたパラメータに置き換えたいと思います。
get_parameter ()
{
echo "$query" | sed -n 's/^.*$1=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"
}
NAME=$( get_parameter name )
しかし、これはうまくいきません。私はどこで間違っていますか?
ベストアンサー1
〜のようにl0b0のヒント、ここでは一重引用符を使用できません。それ以外の例では、sed
それらのどれも使用する必要はありません。もっときれいに見えますgrep
。
get_parameter ()
{
echo "$query" | grep -o "${1}=[^&]*" | sed "s/%20/ /g"
}
いいえecho
:
get_parameter ()
{
<<< "$query" grep -o "${1}=[^&]*" | sed "s/%20/ /g"
}
最後に2番目のものはありませんsed
(ただbash
)。
get_parameter ()
{
<<< "${query//%20/ }" grep -o "${1}=[^&]*"
}