1 |
Am 08.01.2013 00:05, schrieb jens wefer: |
2 |
> Am Mon, 07 Jan 2013 07:22:25 +0100 |
3 |
> schrieb Florian Philipp <lists@×××××××××××.net>: |
4 |
> |
5 |
>> Am 07.01.2013 02:27, schrieb jens wefer: |
6 |
>>> |
7 |
>>> [...] |
8 |
>>> |
9 |
>> |
10 |
>> `ip=($ip_neu)` erzeugt ein Array ip. `$ip` gibt dir den ersten |
11 |
>> Eintrag, also genauso wie `${ip[0]}`. Weil du `$ip_neu` nicht escaped |
12 |
>> hast (`ip=("$ip_neu")`), ist jeder Eintrag whitespace-terminiert. |
13 |
>> |
14 |
>> -- |
15 |
>> Florian |
16 |
> |
17 |
> echo ${#ip_neu[@]} gibt 1 aus, also nur 1 element |
18 |
> ip=${ip_neu[0]} gibt mir alles im test 1219 zeichen |
19 |
> ip=($ip_neu) gibt 1.ip (getrennt durch space zur 2. |
20 |
> so wie ich dich verstanden hab muesste ${ip_neu[0]} mir auch doie erste |
21 |
> ip geben, tut es aber nicht. |
22 |
> |
23 |
> bye, jens. |
24 |
> |
25 |
|
26 |
Nicht wirklich. Bash hat zwar eine implizite Konvertierung von einfachen |
27 |
zu Array-Variablen, aber die Konvertierung ist äquivalent zu |
28 |
`ip=("$ip_neu")`, nicht `ip=($ip_neu)`. |
29 |
|
30 |
BTW: Eine Alternative zum Splitten wäre folgendes: |
31 |
ip=${ip_neu%%[$'\t'$'\n'' ']*} |
32 |
|
33 |
Entfernt alles ab dem ersten Tabulator, Zeilenumbruch oder Leerzeichen |
34 |
und speichert das Ergebnis in ip. |
35 |
|
36 |
-- Florian Philipp |