Это может быть более правильно, хотя ваш вопрос был неясен относительно погоды, во входном файле был сценарий shebang, нужно ли было пропускать shebang, чтобы соответствовать вашему примеру вывода, или если входной файл shebang был просто фиктивным.
Также непонятно, что делать, если первые строки входного файла не начинаются с #
.
Вы действительно должны опубликовать текст своего задания в качестве ссылки.
В любом случае, вот скрипт, который собирает первый набор последовательных строк, начинающихся с резкого #
, в переменную массива arr
.
Возможно, это не точное решение вашего назначения (ведь вам следует в состоянии решить то, чему вас научили предыдущие уроки), но даст вам некоторые подсказки и ключи для итерации строк чтения из файла и проверки того, что строки начинаются с #
.
#!/usr/bin/env bash
# Our variable to store parsed lines
# Is an array of strings with an entry per line
declare -a arr=()
# Iterate reading lines from the file
# while it matches Regex: ^[#]
# mean while lines starts with a sharp #
while IFS=$'\n' read -r line && [[ "$line" =~ ^[#] ]]; do
# Add line to the arr array variable
arr+=("$line")
done <a.txt
# Print each array entries with a newline
printf '%s\n' "${arr[@]}"