Por ejemplo, si usaGNU grep
:
$ echo "Icecream123 AirplaneBCD CompanyTL1 ComputerYU1" | grep -oP '\bIcecream.*?(\s|$)' --color
Utiliza PCRE
.
Heredoc — это гигантская строка, но если завершающая строка(SCRIPT
в вашем<< SCRIPT
)не заключена в кавычки, она действует как строка в двойных -кавычках , поэтому любые переменные раскрываются. Если какая-либо часть терминатора указана в перенаправлении (, например. << "SCRIPT"
), то он действует как одиночная -строка в кавычках , поэтому никакие переменные не расширяются.
Рассмотрим этот скрипт:
$ cat heredoc.sh
#!/bin/bash
var=xyz
cat <<EOF
var=$var
EOF
cat <<'EOF'
var=$var
EOF
$./heredoc.sh
var=xyz
var=$var
Первое EOF
не цитируется, поэтому $var
расширяется. Во-вторых, строка, идущая к cat
, содержит литерал $var
.