Hallo, Am Fri, 03 Oct 2003, Al Bogner schrieb:
habe ich mal die als fehlerhafte Syntax "datei=$(eval echo \$datei$i)" verwendet, da sie für meine Aufgabenstellung funktionierte.
Das Verzeichnis /home/ab/dir\ mit\ blank1/ exisitert
dir=/home/ab/dir\ mit\ blank/ ^^keine 1? i=1 dir=$(eval echo "\$dir$i")
Dann ist $dir1 hier dann leer. $ sh test_blanks.sh ++ eval echo '$dir1' +++ echo + dir= + '[' -d '' ']'
if [ -d "$dir" ]; then echo existiert else echo existiert nicht fi
Mit dieser Syntax existiert das Directory nicht.
Wie müßte man die Syntax verändern, wenn es eine unbekannte Anzahl an ähnlich lautenden Verzeichnis gibt, also zB blank1, blank2, etc. und man abfragen möchte,
==== test_blanks.sh ==== #! /bin/bash # set -x dir1="./foo bar" dir2="./dir mit blank" dir3="./bin dir" dir4="./bla blubb" i=0 while test $i -lt 4 do i=$(( i + 1 )) eval "dir=\"\${dir$i}\"" if [ -d "$dir" ]; then echo "dir='$dir' existiert" else echo "dir='$dir' existiert nicht" fi done ==== $ sh ./test_blanks.sh dir='./foo bar' existiert nicht dir='./dir mit blank' existiert dir='./bin dir' existiert dir='./bla blubb' existiert nicht -dnh -- I'm broken. Please show this to someone who can fix can fix -- A message in a TeX system (Kudos to H J Haataja for the sig)