Я использую несколько браузеров и создал bash-скрипт, который проверяет, какой браузер открыт, и открывает веб-страницы в любом браузере, который уже открыт. Я использую Windows 7, поэтому я запускаю этот скрипт с помощью Cygwin. Я установил скрипт в качестве браузера по умолчанию, отредактировав соответствующие записи в реестре, поэтому всякий раз, когда какая-либо программа пытается открыть веб-страницу, она вызывает этот скрипт, используя параметр Cygwin «--login». Сценарий работает - страницы загружаются в любом браузере, который открыт. Однако всякий раз, когда скрипт вызывается другой программой, я получаю сообщение об ошибке: «При отправке команды в программу возникла проблема». Сценарий работает, но я все равно получаю сообщение об ошибке. Это происходит только тогда, когда скрипт вызывается другой программой - сообщения об ошибке не возникает, если я запускаю скрипт прямо из командной строки.
Я не знаю, виноват ли скрипт, но вот он:
#! /bin/bash
if ps -W | grep -v grep | grep waterfox.exe >/dev/null
then
"/cygdrive/c/Program Files/Waterfox/waterfox.exe" -requestPending -osint -url "$1"
elif ps -W | grep -v grep | grep firefox.exe >/dev/null
then
"/cygdrive/c/Program Files (x86)/Mozilla Firefox/firefox.exe" -requestPending -osint -url "$1"
elif ps -W | grep -v grep | grep chrome.exe >/dev/null
then
"/cygdrive/c/Users/Morgan/AppData/Local/Google/Chrome/Application/chrome.exe" -- "$1"
else
cygstart "/cygdrive/c/Program Files/Waterfox/waterfox.exe" -requestPending -osint -url "$1"
fi
exit
Я попытался изменить последнюю строку на "выход 0", исходя из теории, что была некоторая проблема со статусом выхода, но это не имело никакого эффекта.
Я был бы очень признателен, если бы кто-то умнее, чем Cygwin и / или Windows, смог меня просветить. Спасибо!