使用grep并在bash函数中剪切

时间:2018-11-12 19:23:09

标签: bash function curl 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 ...]"

也许我忽略了某件事...或者也许您有一个更好的主意:-)

1 个答案:

答案 0 :(得分:0)

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

此外,您需要将$3用双引号而不是单引号引起来,否则变量将不会扩展。

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