Для заданной строки (2 или 3 слова) в файле .txt и вывести всю строку. [дубликат]

0
28.04.2018, 19:33
1 ответ

Вы должны изменить это на это:

#!/bin/bash
BOOKFILE="/home/sk/GUTINDEX.ALL"
author=$@
if [[ -z "$author" ]]; then 
    read -rp "Author name: " author
fi
grep "$author" "$BOOKFILE"

Если вы запустите его как:

$./script Frank Lockwood

Вы устанавливаете позиционный параметр 1 на Frankи параметр 2 на Lockwood. Параметр 2 не используется в вашем скрипте. $@— это массив, который будет представлять все позиционные параметры.

Кроме того, если вы разрешите readустановить вашу переменную authorв строку с пробелами, это приведет к ошибке в строке grep без кавычек author.

0
28.01.2020, 04:24

Теги

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