Eu não usaria o bash para isso, mas o controle de alguns navegadores pode ser feito através da extensão das páginas com JavaScript (extra) e o bash poderia se comunicar com isso.
Em vez de desenvolver um driver de navegador da web a partir do zero (e não querer aprofundar mais o JavaScript do que eu já fiz), optei por selênio e um programa personalizado (no meu caso em Python) que lê comandos de arquivos em um diretório predeterminado. Os comandos são arquivos de texto e são escritos por outros programas (bash, python, mas podem ser qualquer coisa) que podem agendar ações simples e ações repetidas, tarefas em segundo plano (se nada mais estiver agendado para ser feito). Para tarefas novas e imprevistas, o programa personalizado deve ser adaptado e o navegador da Web reiniciado, mas após a fase inicial de desenvolvimento, essas extensões raramente eram necessárias.