Используйте grep и режьте внутри функции bash - PullRequest
0 голосов
/ 12 ноября 2018

У меня есть следующий код 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 голосов
/ 12 ноября 2018

Поскольку $4 содержит метасимволы оболочки, которые не обрабатываются при расширении переменных, для его выполнения необходимо использовать eval.

Кроме того, вам нужно ставить $3 в двойных, а не в одинарных кавычках, иначе переменная не будет расширена.

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