TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #395 1.09K
Оптимизация скриптов: меньше внешних команд - выше скорость

Одна из самых недооцененных идей - это избегать лишних вызовов внешних утилит. Каждый grep, sed, awk, cut, wc - это новый процесс. Даже если он работает миллисекунды, то в большом цикле таких вызовов может быть сотни, и производительность падает кратно.

▪️ Примеры оптимизации

➖ Было:


count=$(grep "error" logfile | wc -l)


➕ Стало:


count=$(awk '/error/{c++} END{print c}' logfile)


или вообще без внешних утилит:


count=0
while IFS= read -r line; do
[[ $line == *error* ]] && ((count++))
done < logfile


➖ Было:


name=$(echo "$filename" | cut -d. -f1)


➕ Стало:


name=${filename%%.*}


расширение строк - это встроенная возможность bash, без cut

➖ Было:


for f in $(ls *.log); do
grep "fatal" "$f" >/dev/null && echo "$f"
done


➕ Стало:


for f in *.log; do
grep -q "fatal" "$f" && echo "$f"
done


не вызываем ls, здесь glob уже делает свою работу

▪️ Фичи встроенного bash

${var,,} и ${var^^} - lowercase / uppercase без tr
${var//foo/bar} - замена без sed
${#array[@]} - длина массива без wc
[[ $var == pattern* ]] - шаблоны без grep
((expr)) - арифметика без expr или bc
mapfile -t lines < file - чтение файлов без cat


BashTex 📱 #bash
  • 👍 9
More from @bash_tex
  1. Oct 9, 2026BashTex 📱 #мем
  2. Oct 8, 2026Bridge FDB - как Linux bridge узнаёт, где находится MAC Linux bridge не знает заранее, за…
  3. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  4. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
  5. Oct 5, 2026name_to_handle_at() - как получить файловый объект без обычного пути В Linux обычно обраща…
  6. Oct 2, 2026madvise() - как процесс подсказывает ядру, как он собирается использовать память Когда про…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →