ubuntuusers.de

Spaces in Parametern

Status: Gelöst | Ubuntu-Version: Ubuntu 14.04 (Trusty Tahr)
Antworten |

jilbi

Anmeldungsdatum:
29. November 2014

Beiträge: 96

Hi,

nach langem suchen hab diese Variante gefunden um Spaces in Bashparametern abzufangen:

1
2
3
4
5
6
7
8
#!/bin/bash
for arg in "$@"; do
    echo $arg
done

#bash script "path/subfolder number 1/file" "path2" ergibt 
#path/subfolder number 1/file
#path2

schön und gut, wenn ich das aber in einer Funktion versuche, klappt das ganze nicht mehr. Da ich die Funktion rekursiv aufrufe kann ich die Parameter nicht einfach ausserhalb der FUnktion schon herausfischen

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
#!/bin/bash

function doit {
    for arg in "$@"; do
        echo $arg
    done
}

doit $@

#bash script "path/subfolder number 1/file" "path2" ergibt 
#path/subfolder 
#number 
#1/file
#path2

was tun? Ich bin erstaunt wie kompliziert soetwas normales ist...

jilbi

(Themenstarter)

Anmeldungsdatum:
29. November 2014

Beiträge: 96

ok selbst beantwortet, es muss

1
doit "$@"

heißen, die quotes waren natürlich wieder wichtig, puh

Antworten |