Когда я использую grep в TEST (строка 18), он отлично работает. Когда я выполняю ту же самую команду, но внутри цикла for (цикл 40), это не работает. Зачем? Я слишком долго изогнул свой мозг по этой проблеме.Сценарий оболочки Linux: grep не работает внутри for-loop
#!/bin/bash
clear
sourcelist=`ls *.c`
headerlist=`ls *.h`
FILE="headers.txt"
TEST="receive_elevator_data" #this is one typical entry in headers.tex
echo "TEST"
grep $TEST *.c -n
MODE="h"
if [ "$MODE" = "h" ]
then
echo "Searching.."
#for entry in $(cut -f 1 $FILE)
for entry in `cat $FILE`
do
echo "Looking at entry in $FILE: "
echo $entry
echo "Press any button to search, <s> for skip, <e> to exit"
read -e INPUT2
if [ "$INPUT2" = "s" ]
then
continue
fi
if [ "$INPUT2" = "n" ]
then
exit 1 #exit shell script
else
grep -n "${entry}" ${sourcelist}
fi
done
fi
Просто для уточнения: каждая строка в headers.txt имеет строки, как «тест», т.е. без пробелов в линиях. Что действительно содержит файл headers.txt, это список имен функций, извлеченных из всех файлов заголовков в проекте C :) В моем предыдущем коде не было возвращенной ошибки, это была только команда grep в цикле, которая не запускалась. То, что я хочу сделать, - это поиск по всем файлам C для каждой функции в headers.txt и запрос перед каждым поиском
'СЭД 's/^/\ т /' сценарий | xclip', и вы готовы вставить;) – c00kiemon5ter
Выберите код и нажмите на маленькие фигурные скобки? –
также, что это за ошибка? вы должны включить эту информацию. – c00kiemon5ter