Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Probleem met bash-script en extern programma aanroepen  (gelezen 1058 keer)

Offline ruujan

  • Lid
Probleem met bash-script en extern programma aanroepen
« Gepost op: 2008/06/04, 00:53:53 »
Ik wil een script maken om een openvpn-verbinding te openen vanuit een menu. Dat menu wil ik doen met zenity. Maar op de een of andere manier worden de parameters niet goed doorgegeven. De titel die eigenlijk VPN MENU zou moeten zijn zie je als "VPN en in het menu zelf vind ik MENU" terug als keuze.
Met het commando echo "$VPNMENU" ziet alles er wel normaal uit? Waar doe ik iets fout?


Het script:

#!/bin/sh

# maak een lijst van conf-bestanden in ~.openvpn

VPNCONFS=`ls ~/.openvpn/*.conf | cut -d\/ -f5 | cut -d. -f1 `
VPNARRAY=($VPNCONFS)
VPNMENU="--list --title=\"VPN MENU\" --column=VPN"

for i in ${!VPNARRAY
  • }

do
   VPNMENU+=" ${VPNARRAY}"
done
echo "$VPNMENU"
choice=`zenity $VPNMENU`

echo $choice

Probleem met bash-script en extern programma aanroepen
« Reactie #1 Gepost op: 2008/06/04, 08:33:55 »
Tja, alles ziet er ok uit.
Het is heel simpel, de parameter is goed gevuld, maar blijkbaar kan zenity er niets mee.
Dus in zenity moet je je antwoord vinden (een bug in zenity wellicht ?).

Monk.

Offline Johan van Dijk

  • Administrator
    • johanvandijk
Probleem met bash-script en extern programma aanroepen
« Reactie #2 Gepost op: 2008/06/04, 08:44:35 »
choice=`zenity "$VPNMENU"`
Waarschijnlijk lost dit je probleem op.

Wist je trouwens dat er een OpenVPN plugin bestaat voor de network manager?
Die zit in het pakket network-manager-openvpn
Dat lijkt me makkelijker dan zelf prutsen ;)

Offline ruujan

  • Lid
Probleem met bash-script en extern programma aanroepen
« Reactie #3 Gepost op: 2008/06/04, 08:47:23 »
JA, dat dacht ik ook, maar ik heb het ook een beetje verbouwd en met Xdialog geprobeerd. Die maakt er net zo'n rommel van.

Offline ruujan

  • Lid
Probleem met bash-script en extern programma aanroepen
« Reactie #4 Gepost op: 2008/06/04, 08:58:38 »
Citaat van: Johanvd
choice=`zenity "$VPNMENU"`
Waarschijnlijk lost dit je probleem op.

Wist je trouwens dat er een OpenVPN plugin bestaat voor de network manager?
Die zit in het pakket network-manager-openvpn
Dat lijkt me makkelijker dan zelf prutsen ;)
Ja, dat weet ik, maar die maakt een puinhoop van de routes. Als ik vanaf de commandline werk gaat het wel goed.

choice=`zenity "$VPNMENU"` Geeft een foutmelding.

Offline ruujan

  • Lid
Probleem met bash-script en extern programma aanroepen
« Reactie #5 Gepost op: 2008/06/04, 11:40:58 »
Zo werkt het wel:

Blijkbaar gaat er iets mis bij de expansie van $VPNMENU. De spatie wordt dan gezien als delimiter en dus wordt er een oparameter extra meegegeven. Ik heb geen idee hoe ik dat nou weer kan oplossen.

#!/bin/bash

# maak een lijst van conf-bestanden in ~.openvpn

VPNCONFS=`ls ~/.openvpn/*.conf | cut -d\/ -f5 | cut -d. -f1 `
VPNARRAY=($VPNCONFS)
VPNMENU=""

for i in ${!VPNARRAY
  • }

do
   VPNMENU+=" ${VPNARRAY}"
done
choice=`zenity --list --title="VPN MENU" --column=VPN  $VPNMENU`

Offline ruujan

  • Lid
Probleem met bash-script en extern programma aanroepen
« Reactie #6 Gepost op: 2008/06/04, 14:26:52 »
Zo gaat het helemaal goed:

MTITLE="VPN MENU"


choice=`zenity --list --title="${MTITLE}" --column=VPN  $VPNMENU`