vorschlag bearbeiten

tzzaetaynzz

tzzaetaynzz

Tripel-As
[geloest] vorschlag bearbeiten

hallo an alle,

ich habe ein kleines skipt, das nicht will wie ich. :(

das skript liest aus einer textdatei nacheinander zeilen aus und weisst jeder zeile eine eigene variable zu (hier ist nur $PFAD_ALT zu sehen).
diese variable wird nun ausgegeben mit echo. die if anweisung prueft ob etwas eingegeben wurde, wenn nicht, dann wird die variable $PFAD_ALT der variable $PFAD zugeordnet. das klappt!

aber ich kann den vorschlag nicht aendern.

PHP:
exec 4<$AKTENORDNER_DB

read PFAD_ALT <&4
echo -n "Pfad: $PFAD_ALT"
	if [ -z `read PFAD` ]
		then PFAD=$PFAD_ALT
	fi

Code:
Pfad: /root/verzeichnis
Hinter dem s blinkt der curser. gerne wuerde ich nun verzeichnis loeschen und tmp ein tippen, so das
Code:
Pfad: /root/tmp
da steht und ich mit enter den neuen pfad an die variable pfad uebergebe.

hat jemand von euch eine idee wie ich das anstelle?
 
Zuletzt bearbeitet:
Hallo
Dein read liest ja nicht aus 0, sondern aus der selbst erstellten 4.
Also würde ich versuchen beim Einlesen der Usereingabe explizit von <&0 zu lesen.

HTH
Gruß Wolfgang
 
so ein default wert für read geht in der bash nicht direkt. mit dem history befehl kannst du halbwegs so was erreichen:
Code:
history -s "$PFAD_ALT"
wenn du dann mit read einen wert vom terminal einliest, kannst du mit der "pfeil nach oben"-taste den zuvor mit history eingegebenen default wert holen und editieren
Code:
read -ep "Pfad: " PFAD
 
Jetzt würde mich das fertige Skript auch interessieren ;)
 
Schlaubi_fi.de schrieb:
Jetzt würde mich das fertige Skript auch interessieren ;)

ja gerne doch:
PHP:
#!/bin/bash

#
# Aktenordner, ein einfaches Programm mit dem Dokumente
# digitaliesiert und abgelegt werden können.
#
# Version: 0.1

# EINSTELLUNGEN
AKTENORDNER_DB=/home/admin/bin/aktenordner.db
TEMP_DAT=tmp.pnm
TEMP_VER=/home/admin/tmp/scanner
DATUM=`date +%Y%m%d`
MENUE='WEITER ENDE'

stty erase ^H #Backslash aktivieren

function aktenordner() { # ANFANG FUNKTION aktenordner

# DATEN VOM BENUTZER EINLESEN
clear
exec 4<$AKTENORDNER_DB

read PFAD_ALT <&4
	history -s "$PFAD_ALT"
	read -ep "Pfad [$PFAD_ALT]: " PFAD
	if [ ! -d $PFAD ]; then
			clear
			echo "++++++++++++++++++++++++++++++++++++++"
			echo "+ Verzeichnis existiert nicht."
			echo "+ Soll das Verzeichnis angelegt werden?"
			echo "++++++++++++++++++++++++++++++++++++++"
			read -ep "[ JA ] [NEIN] :" ANTWORT
			if [ -z $ANTWORT ]; then ANTWORT=NEIN; fi
			ANTWORT=`echo $ANTWORT | tr A-Z a-z`
			if [ "$ANTWORT" = "ja" ]; then
				mkdir -p $PFAD
				else
					clear
					echo "+++++++++++++++++++++++++++++++++++++++++++"
					echo "+ Das Programm wird beendet,"
					echo "+ weil der Pfad nicht angelegt werden soll."
					echo "+++++++++++++++++++++++++++++++++++++++++++"
					exit 0
			fi
	fi
	
read DATEINAME_ALT <&4
	while [ -z $DATEINAME ]; do
		history -s "$DATEINAME_ALT"
		read -ep "Dateiname [$DATEINAME_ALT]: " DATEINAME
		if [ -z $DATEINAME ]; then
			echo "Es wurde kein Dateiname eingegeben."
		fi
	done
	
read ZAEHLER_ALT <&4
	history -s "$ZAEHLER_ALT"
	read -ep "Zähler [$ZAEHLER_ALT]: " ZAEHLER
	if [ -n "$ZAEHLER" ]; then
		ZAEHLER=-$ZAEHLER
	fi
	
read BILDTYP_ALT <&4
	history -s "$BILDTYP_ALT"
	read -ep "Bildtyp [jpeg|png|tiff]: " BILDTYP
			if [ -z $BILDTYP ]; then BILDTYP=jpeg; fi

read MODE_ALT <&4
	history -s "$MODE_ALT"
	read -ep "Mode [Gray|Color|Linear]: " MODE
		if [ -z $MODE ]; then MODE=Gray; fi
exec 4<&-

# SCANNEN
scanimage \
	-d plustek:libusb:002:002 \
	--format=pnm \
	--mode=$MODE \
	--depth=8 \
	--brightness 00 \
	--contrast 30 \
	--resolution=300 \
	-l 0 -t 0 -x 215 -y 297 > $TEMP_VER/$TEMP_DAT

# KONVERTIEREN:
/usr/bin/pnmto$BILDTYP \
$TEMP_VER/$TEMP_DAT > $PFAD/$DATEINAME-$DATUM$ZAEHLER.$BILDTYP

# LÖSCHEN
rm -rf $TEMP_VER/$TEMP_DAT

# AKTENORDNER_DB
cp /dev/null $AKTENORDNER_DB
echo $PFAD > $AKTENORDNER_DB
echo $DATEINAME >> $AKTENORDNER_DB
ZAEHLER=`echo $ZAEHLER | sed -e 's/-//'`
echo $ZAEHLER >> $AKTENORDNER_DB
echo $BILDTYP >> $AKTENORDNER_DB
echo $MODE >> $AKTENORDNER_DB

} # ENDE FUNKTION aktenordner

# HAUPTPROGRAMM
aktenordner
	
# MENUE
while [ -z $var1 ]; do
	
	clear
	echo "+++++++++++++++++++++++++"
	echo "+ Was soll nun passieren?"
	echo "+++++++++++++++++++++++++"

	select AUSWAHL in $MENUE ; do
		if [ "$AUSWAHL" = "WEITER" ]; then
			aktenordner
		elif [ "$AUSWAHL" = "ENDE" ]; then
			exit 0
		else
			echo "++++++++++++++++++++++"
			echo "+ Falsche Eingabe."
			echo "+ Eingabe wiederholen!"
			echo "++++++++++++++++++++++"
		fi
	done
done

viel spaß beim interpretieren. :)
 
Zuletzt bearbeitet:

Ähnliche Themen

Queue für copy Script

Habe da ein Problem was nicht wegbekomme

Jaunty + Zend + Gdata + xampp

Mysql connect Problem

HOWTO Installationshilfe für ein 2- oder mehr-CD Spiel auf einer DVD

Zurück
Oben