ubuntuusers.de

Dialog Checklist Ordnerinhalt auslesen

Status: Gelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

skapi85

Anmeldungsdatum:
19. August 2017

Beiträge: 48

Hallo,

ich hadere gerade mit meinem Dialog (checklist) script einwendig und würde hier bitte einwenig Unterstützung brauchen ☺

Es soll von einem Ordner alle darin befindlichen Ordner ausgelesen werden und zum Auswahlmenü in Dialog übergeben werden. Danach soll in den ausgewählten Ordnern etwas gespeichert werden.

Folgendes hab ich bis jetzt gemacht, leider funzt das ganze nicht so richtig...

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
Pfad="/var/www/users"
for FILE in $(ls $Pfad); do  
   FILE=$(echo "${FILE} \"\" off")
done

while true
do
Clientens=`dialog --backtitle Nachrichtenscript --title Menu \
			--checklist  "Wem moechten Sie ihre Nachricht senden" 0 60 0 \
			${FILE} 3>&1 1>&2 2>&3`
done

Ich hab auch eine funktionierende Version, wo leider die Ordner manuell eingegeben werden müssen, dies will ich jedoch automatisiert haben...

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
while true
do
Clientens=`dialog --backtitle Nachrichtenscript --title Menu \
			--checklist  "Wem moechten Sie ihre Nachricht senden" 0 60 0 \
			ALLE "Sende Nachricht an alle Clienten" off\
			Schlafzimmer "" off 3>&1 1>&2 2>&3`

clientsantwort=$?
	if [ $clientsantwort = 1 ]; then 
		clear
		exit
	fi

	case $Clientens in
		'"ALLE"')
				echo $datumzeit > /var/www/users/alle/msg/time.txt
				echo $ende > /var/www/users/alle/msg/timee.txt
				break
				;;
		'"Schlafzimmer"' )
				echo $datumzeit > /var/www/users/sz/msg/time.txt
				echo $ende > /var/www/users/sz/msg/timee.txt
				break
				;;
				*)
				;;
	esac
done

Würd mich freuen wenn jemand einen Tipp hätte wie diese Sache richtig verarbeitet werden kann.

skapi85

(Themenstarter)

Anmeldungsdatum:
19. August 2017

Beiträge: 48

Lösung:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/bash
DIR="/var"
function cho () {
options=$(ls "$DIR" | awk '{print $1, FNR, "off"}')
cmd=(dialog --title Menu --stdout \
      --separate-output \
      --checklist "Select options:" 22 76 16)
choices=$("${cmd[@]}" ${options})
check
}
function check () {
if [ $? -eq 0 ]; then
   if [ -z "$choices" ]; then
      dialog --title Menu --msgbox "No option selected!" 5 28
      dialog --clear
      cho
else
   for choice in $choices
   do
   echo "$choice"
   done
fi
else
  clear && echo ""Cancel...
fi
}
cho
Antworten |