在bash函数内部使用grep和cut



我有以下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 ...]"

也许我忽略了什么。。。或者你可能有一个更好的主意:-(

由于$4包含扩展变量时不处理的外壳元字符,因此需要使用eval来执行它。

此外,您需要将$3放在双引号中,而不是单引号中,否则变量将无法展开。

version="$(grep "$3" "$1" | eval "$4" )"

最新更新