Я использую сценарий Perl для поиска данных, необходимых для устранения ошибок другого процесса.В OSX эти строки в скрипте Perl открывают нужные сайты и файлы в моем браузере и текстовом редакторе.Вот код, который работает в OSX:
if ($^O eq "darwin") {
system `open -a /Applications/Firefox.app https://site`;
system `open -a /Apopen -a /Applications/Komodo.appplications/Komodo.app file1.md file2.md`;
system `open -a /Applications/Komodo.app file3.md`;}
Я могу запустить этот скрипт несколько раз, и приложения будут добавлять вкладки с новыми открытыми файлами.
Однако мне нужно будет запустить тот жеинструмент для Linux, и я не нашел никакого способа сделать это.Вот как я пытался адаптировать его для Linux.
if ($^O eq "linux") {
system `firefox local_file.html & disown`;
system `firefox https://site1 https://sitex & disown`;
system `komodo file1 file2 filex & disown`;
}
С тех пор я настроил скрипт Perl так, чтобы он выводил оболочку, которую я могу запустить из командной строки (последняя версия согласно предложению @Грант Маклин):
xdg-open https://www.site1 & disown
xdg-open https://www.site2 & disown
xdg-open /home/.../file1.html & disown
xdg-open /home/.../file2.md & disown
xdg-open /home/.../file3.md & disown
Я понял из предложения @Grant McLean, что если бы я интегрировал его в скрипт Perl, строки были бы, например,
system "xdg-open { file | site } & disown";
Но так какоболочка вешает систему, я предполагаю, что передача команд в систему из сценария Perl также приведет к зависанию системы.
Я хочу, чтобы браузер и текстовый редактор открывали файлы из оболочкии не нужно открывать файлы индивидуально в каждом приложении.Есть идеи?