Скрипт, который получит ТОЧНОЕ имя или символ

$ (...) (также известный как «Подстановка команд») фиксирует вывод команды ... . Присвоение значения переменной не дает результата, поэтому захватывать нечего. В случае №2 echo производит вывод.

getStart () {
    local l=Hallo
    echo $l
}

v=$(getStart)
echo $v

Чтобы ответить на ваше обновление: функция выводит Hallo . Этот вывод фиксируется с помощью подстановки команд, потому что это то, что делает подстановка команд, поэтому до v = $ (getStart) сценарий не производит вывода. Затем строка echo $ v выводит Hallo .

1
13.04.2018, 10:33
2 ответа

Используйте

grep '/^ABC$/' file.in

или

grep -x 'ABC' file.in

, если вы хотите, чтобы совпадение происходило в отдельной строке.

Используйте

grep -w 'ABC' file.in

соответствует слову ABC(, т. е. строке ABC, окруженной буквенно-цифровыми символами, отличными от -, или началу/концу строки ). Это будет соответствовать строке, содержащей, например. 123 ABC 123.

Кроме того, используйте -F, если ABCне регулярное выражение, а статическая строка. И используйте -o, если вы хотите, чтобы grepвозвращал только совпадающие строки, а не всю строку, содержащую совпадение.

2
27.01.2020, 23:23

Если вам просто нужно вернуть два значения:

grep -ow ABC File1

-o, --only-matching Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line.

-w, --word-regexp Select only those lines containing matches that form whole words. The test is that the matching substring must either be at the beginning of the line, or preceded by a non-word constituent character. Similarly, it must be either at the end of the line or followed by a non-word constituent character. Word-constituent characters are letters, digits, and the underscore.

1
27.01.2020, 23:23

Теги

Похожие вопросы