Ваша догадка была довольно близка. Вы можете сделать
for w in 'KeyWord1' 'KeyWord2' 'KeyWord3'
do
echo "<HR><BR><B><h2>Search for Keyword: $w<BR></B></h2><ol>" >> temp.txt
grep -lr -Fiw "$w" * | sed -e 's|.*|<li><a href="http://&">&</a></li>|' >> temp.txt
echo "</ol>" >> temp.txt
done
Из соображений стиля я бы изменил это на
for w in 'KeyWord1' 'KeyWord2' 'KeyWord3'
do
echo "<HR><BR><B><h2>Search for $w: KeyWord1<BR></B></h2><ol>"
grep -lr -Fiw "$w" * | sed -e 's|.*|<li><a href="http://&">&</a></li>|'
echo "</ol>"
done > temp.txt
Ваша версия добавит это новое содержимое к ранее -существующему temp.txt
файлу. Если это то, чем ты действительно хочешь заниматься, измените >
обратно на >>
. После этого он (бесконечно )более эффективен открыть temp.txt
для записи один раз на весь цикл а не три раза для каждого ключевого слова.
П.С. Это просто пришло мне в голову что вы, вероятно, написали <html><head>…</head><body>
в выходной файл, прежде чем сделать это, так что, конечно, вам нужно добавить это к этому предварительно -существующему контенту.
PATH
— это переменная среды, содержащая разделенный двоеточием -список каталогов, который bash
использует для поиска исполняемых программ при вводе команд.
Если то, что вы вводите, не соответствует alias
, функции или встроенной функции bash
, bash
ищет исполняемый файл в списке каталогов в PATH
.
Добавьте свой каталог в $PATH
для текущего процесса с
PATH=$PATH:$HOME/.local/bin
в командной строке.
Чтобы сделать изменение постоянным, добавьте приведенную выше строку в свой $HOME/.bashrc
.