Вы можете попробовать следующий тип:
#!/bin/bash
declare -a arr
i=0
j=0
for dir in $(find /home/rmajeti/programs -type d)
do
arr[i]=$dir
i=$((i+1))
done
while [ $j -lt $i ]
do
echo ${arr[$j]}
j=$((j+1))
done
Вы должны указать, сколько совпадений вам нужно. Так как вам нужно сначала нажать
tail -f server.log | grep -m 1 "mystring"
, как только «mystring» найдена для первого удара, программа автоматически закроется.
Вы можете попробовать что-то вроде:
tail -f my-file.log | awk '/Server running at http/ { print | bash file_with_code}'
P.S. вместо другого файла это может быть функция в том же самом скрипте, разумеется, что в таком случае вам не нужно произносить bash перед функцией
Другое возможное решение: