Я пытаюсь прочитать текстовый файл, который имеет несколько комментариев, начинается с «#», мой bash-скрипт должен читать строки текстового файла, который не начинается с «#». Также я пытаюсь захватить вывод операторов echo в обоих журналах и показать это окно консоли для понимания пользователя.
Я попытался использовать приведенный ниже запрос для захвата журналов и печати в консоли
exec 2> & 1 1 >> $ logfile
Для чтения каждой строки файла ивызывая функцию, я объявил массив и для удаления строк, начинающихся с '#', я использовал следующий запрос.
declare -a cmd_array
while read -r -a cmd_array | grep -vE '^(\s*$|#)'
do
"${cmd_array[@]}"
done < "$text_file"
Примечание: мне нужно удалить строку, начинающуюся с '#' иостальные строки для чтения и размещения в массиве, как объявлено.
Bash script
***********
#! /bin/bash
Function_1()
{
now=$( date '+%Y%m%d%H%M' )
eval logfile="$1"_"$now".log
exec 2>&1 1>>$logfile ### Capture echo output in log and printing in console
#exec 3>&1 1>>$logfile 2>&1
echo " "
echo "############################"
echo "Function execution Begins"
echo "############################"
echo "Log file got created with file name as $1.log"
eval number=$1
eval path=$2
echo "number= $number"
ls -lR $path >> temp.txt
if [ $? -eq 0 ]; then
echo " Above query executed."
else
echo "Query execution failed"
fi
echo "############################"
echo "Function execution Ends"
echo "############################"
echo " "
}
text_file=$1
echo $text_file
declare -a cmd_array ### declaring a array
while read -r -a cmd_array | grep -vE '^(\s*$|#)' ### Read each line in the file with doesnt starts with '#' & keep it in array
do
"${cmd_array[@]}"
done < "$text_file"
Text file
*********
####################################
#Test
#Line2
####################################
Function_1 '125' '' ''
Function_1 '123' '' ''