我有以下bash代码:
function () {
curl="$(curl -s "$2" >> "$1")"
version="$(grep '$3' $1 | $4 )"
echo $version
}
function "test" "https://google.com" "String" "cut -d' ' -f3 | cut -d'<' -f1"
基本上,该函数下载页面,然后使用grep查找特定的字符串。在“削减”之后,进一步削减结果。但是...一直以来,该函数内部的剪切均无效。我只得到以下输出:
"usage: cut -b list [-n] [file ...]
cut -c list [file ...]
cut -f list [-s] [-d delim] [file ...]"
也许我忽略了某件事...或者也许您有一个更好的主意:-)
答案 0 :(得分:0)
由于$4
包含在扩展变量时未处理的shell元字符,因此您需要使用eval
来执行它。
此外,您需要将$3
用双引号而不是单引号引起来,否则变量将不会扩展。
version="$(grep "$3" "$1" | eval "$4" )"