2016-05-01 6 views
0

Ich möchte mehrere Websites (ausgewählt von Zenity-Häkchen) starten. Ich war erfolgreich aber ein wenig Ärger.Bash & Zenity, um mehrere Websites zu starten

#!/bin/bash 
browser=$(zenity --list --text "Which browser?" --radiolist --column "Pick" --column "Browser" TRUE firefox FALSE opera) 
sites=$(zenity --height=280 --width=300 --list --text "How linux.byexamples can be improved?" --checklist --column "Pick" --column "Sites" TRUE http://cr4.globalspec.com/ TRUE http://www.cheresources.com/ TRUE http://www.eng-tips.com/ FALSE http://www.engineersedge.com/ FALSE http://hvac-talk.com/vbb/ FALSE http://www.refrigeration-engineer.com/ FALSE http://engineering.stackexchange.com/ FALSE http://chemistry.stackexchange.com/ --separator=" ") 
$browser $sites 

Wenn mein firefox bereits & läuft prüfe ich mehr als eine Website in Firefox zu öffnen, werden die geprüften Websites in einem Fenster neuen Firefox öffnen, anstelle der bestehenden Fenster & neue Registerkarten. Dies passiert nicht, wenn ich einzelne Sites überprüfe. Das Problem kann, wenn ich so etwas wie

$browser site1 
$browser site2 ... 

So verwenden umgangen werden, wie kann ich die Ausgabe (Sammlung von Webseiten, die von Leerzeichen getrennt) in Scheiben schneiden von zenity erzeugt & dann durch jede von ihnen die Kette wie angegeben?

Antwort

1

können Sie iterieren (und damit offen einen nach dem anderen) über die $sites auf diese Weise:

#!/bin/bash 

browser=$(zenity --list --text "Which browser?" --radiolist --column "Pick" --column "Browser" TRUE firefox FALSE opera) 

sites=$(zenity --height=280 --width=300 --list --text "How linux.byexamples can be improved?" --checklist --column "Pick" --column "Sites" TRUE http://cr4.globalspec.com/ TRUE http://www.cheresources.com/ TRUE http://www.eng-tips.com/ FALSE http://www.engineersedge.com/ FALSE http://hvac-talk.com/vbb/ FALSE http://www.refrigeration-engineer.com/ FALSE http://engineering.stackexchange.com/ FALSE http://chemistry.stackexchange.com/ --separator=" ") 

for site in $sites; do 
    $browser $site 
done