Shell Wildcards Bug?

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von angelsfall, 17.07.2007.

  1. #1 angelsfall, 17.07.2007
    angelsfall

    angelsfall Routinier

    Dabei seit:
    09.05.2005
    Beiträge:
    315
    Zustimmungen:
    0
    Ort:
    Berlin
    Hallo,

    ich wollte grade mit der Shell Dateien kopieren lassen, die nur mit einem Großbuchstaben beginnen.
    Also (jaja, mit ls kann man nicht kopieren, ist schon klar :) ) :
    Code:
    satire)0)548)~} ls [A-Z]*.gif
    Empfang.gif  Gesamt.gif  LAN.gif  projektstrukturplan.gif  Senden.gif  usecase.gif
    
    Da dachte ich mir, da kann doch was nicht stimmen. Er ignoriert die Captials. Validiert:
    Code:
    satire)0)549)~} ls [a-z]*.gif
    Empfang.gif  Gesamt.gif  LAN.gif  projektstrukturplan.gif  Senden.gif  usecase.gif
    
    Allerdings tut er dies nicht, wenn man keinen Bereich angibt:
    Code:
    satire)0)551)~} ls [SEG]*.gif
    Empfang.gif  Gesamt.gif  Senden.gif
    
    Code:
    satire)0)552)~} ls [seg]*.gif
    ls: [seg]*.gif: Datei oder Verzeichnis nicht gefunden
    
    Bash Version:
    Code:
    satire)0)555)~} bash --version
    GNU bash, version 3.00.16(1)-release (i486-pc-linux-gnu)
    Copyright (C) 2004 Free Software Foundation, Inc.
    
    Anderes System, auf dem es ebenfalls nicht funkionert hat:
    Code:
    root@vm-host-01:~$ bash --version
    GNU bash, version 3.1.17(1)-release (x86_64-pc-linux-gnu)
    Copyright (C) 2005 Free Software Foundation, Inc.
    
    Ein System, auf dem all das korrekt funktioniert hat:
    Code:
    ~>bash --version
    GNU bash, version 2.05b.0(1)-release (i386-pc-linux-gnu)
    Copyright (C) 2002 Free Software Foundation, Inc.
    
    Kann das jemand verifizieren oder bin ich einfach nur zu dumm, die Shell Wildcards zu benutzen? (Scheinbar ab Bash Version 3.0)
    (Laut diesem Howto sollte es aber funktionieren: http://www.tuxfiles.org/linuxhelp/wildcards.html )

    Danke!
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. hwj

    hwj Doppel-As

    Dabei seit:
    23.06.2006
    Beiträge:
    131
    Zustimmungen:
    0
    Ort:
    Bei Buxtehude
    Interessant:
    $ bash --version
    GNU bash, version 3.1.17(1)-release (i586-suse-linux-gnu)
    Copyright (C) 2005 Free Software Foundation, Inc.

    $ touch A B a b
    $ ls
    a A b B

    $ ls [A-Z]*
    A b B

    Etwas ratlos ???

    Heiko
     
  4. #3 angelsfall, 17.07.2007
    Zuletzt bearbeitet: 17.07.2007
    angelsfall

    angelsfall Routinier

    Dabei seit:
    09.05.2005
    Beiträge:
    315
    Zustimmungen:
    0
    Ort:
    Berlin
    Wirklich? Irgendwie fehlt da entweder das "a" oder das "b" ist zu viel ;) (Oder deins macht nochmal ganz andere Sachen)

    {edit}
    Hab deins rekonstruiert, bei mir kommt das gleiche. Das ist ja noch kurioser.

    {edit la deuxieme}
    Und weiter gehts:
    Code:
    satire)0)521)~/lala} ls
    a  A  b  B
    satire)0)522)~/lala} ls [!a-z]
    ls: [!a-z]*: Datei oder Verzeichnis nicht gefunden
    satire)1)523)~/lala} ls [!A-Z]
    a
    satire)0)524)~/lala}
    
     
  5. #4 z-shell, 17.07.2007
    z-shell

    z-shell Debianator

    Dabei seit:
    30.05.2007
    Beiträge:
    434
    Zustimmungen:
    0
    Ort:
    /home/z-shell
    Code:
    ┌─(z-shell@debian:pts/3)────────────────────────────────────────────────────────────(~/testdir)─┐
    └─(17:43:%)── zsh --version                                                        ──(Di,Jul17)─┘
    zsh 4.3.2 (i686-pc-linux-gnu)
    
    Und gezz:

    Code:
    ┌─(z-shell@debian:pts/3)────────────────────────────────────────────────────────────(~/testdir)─┐
    └─(17:44:%)── l                                                                    ──(Di,Jul17)─┘
    a  A  b  B
    ┌─(z-shell@debian:pts/3)────────────────────────────────────────────────────────────(~/testdir)─┐
    └─(17:44:%)── l [a-z]                                                              ──(Di,Jul17)─┘
    a  b
    ┌─(z-shell@debian:pts/3)────────────────────────────────────────────────────────────(~/testdir)─┐
    └─(17:44:%)── l [A-Z]                                                              ──(Di,Jul17)─┘
    A  B
    
    :D
     
  6. Zico

    Zico Lebende Foren Legende

    Dabei seit:
    16.04.2004
    Beiträge:
    1.559
    Zustimmungen:
    0
    Code:
    [zico@marvin test]$ bash --version
    GNU bash, version 3.2.17(1)-release (x86_64-unknown-linux-gnu)
    Copyright (C) 2005 Free Software Foundation, Inc.
    [zico@marvin test]$ touch A B a b
    [zico@marvin test]$ ls [a-z]
    a  b
    [zico@marvin test]$ ls [A-Z]
    A  B
    [zico@marvin test]$ ls [!A-Z]
    a  b
    [zico@marvin test]$ ls [!a-z]
    A  B
    [zico@marvin test]$ ls [!a-z]*
    A  B
    [zico@marvin test]$ ls [!A-Z]*
    a  b
     
  7. #6 angelsfall, 17.07.2007
    angelsfall

    angelsfall Routinier

    Dabei seit:
    09.05.2005
    Beiträge:
    315
    Zustimmungen:
    0
    Ort:
    Berlin
    Ok, danke an alle. Also entweder eine neuere Version oder ne andere Shell ;)
     
  8. #7 b3ll3roph0n, 17.07.2007
    b3ll3roph0n

    b3ll3roph0n Tripel-As

    Dabei seit:
    13.07.2007
    Beiträge:
    160
    Zustimmungen:
    0
    Nö! ;)

    Das hat nichts mit der bash-Version zu tun, sondern mit der Sortierung der Zeichen.

    man bash
    Schau doch mal nach auf welchen Wert LC_COLLATE bei dir gesetzt ist.
    Ich vermute mal bei dem Rechner, auf dem das globbing nicht wie gewünscht funktioniert ist LC_COLLATE nicht auf C bzw. POSIX gesetzt.



    Beispiel:
    Code:
    $ echo $LC_COLLATE
    C
    $ ls [A-Z]*
    A  B
    $ ls [a-z]*
    a  b
    Code:
    $ echo $LC_COLLATE
    
    $ ls [A-Z]*
    A  b  B
    $ ls [a-z]*
    a  A  b  B
    Code:
    $ echo $LC_COLLATE
    POSIX
    $ ls [A-Z]*
    A  B
    $ ls [a-z]*
    a  b
    In jedem Fall sollte aber
    Code:
    $ ls [[:upper:]]*
    bzw.
    Code:
    $ ls [[:lower:]]*
    funktionieren.
     
  9. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  10. #8 angelsfall, 17.07.2007
    angelsfall

    angelsfall Routinier

    Dabei seit:
    09.05.2005
    Beiträge:
    315
    Zustimmungen:
    0
    Ort:
    Berlin
    Wow, danke, b3ll3roph0n, das wars!
     
  11. Zico

    Zico Lebende Foren Legende

    Dabei seit:
    16.04.2004
    Beiträge:
    1.559
    Zustimmungen:
    0
    Und wieder was gelernt. :)
     
Thema:

Shell Wildcards Bug?

Die Seite wird geladen...

Shell Wildcards Bug? - Ähnliche Themen

  1. [Erledigt] Shell-Skript lässt sich nicht mit Cron ausführen

    [Erledigt] Shell-Skript lässt sich nicht mit Cron ausführen: Hallo, ich hoffe ihr könnt mir helfen. Ich entwerfe im Moment ein Skript, welches den Callmonitor (Telnet) auf meiner FritzBox abfragt und wenn...
  2. Shell-Skript Datum in einer Datai suchen

    Shell-Skript Datum in einer Datai suchen: Hallo zusammen Ich komm eigentlich aus der Klicki-Bunti-Welt von Windows. Seit geraumer Zeit versuche ich meine Künste mit verschiedenen...
  3. Shell Script Problem

    Shell Script Problem: Hallo zusammen, ich arbeite momentan mit einem Plagiat Tool, die ich über Git Bash ausführe. Es wird im Endeffekt ein Link generiert, die ich...
  4. Anonymisierungs-Distribution Tails 2.0 wechselt zu Gnome Shell

    Anonymisierungs-Distribution Tails 2.0 wechselt zu Gnome Shell: Tails (The Amnesic Incognito Live System) ist in Version 2.0 erschienen und bringt als Dektopoberfläche eine Gnome-Shell im Classic-Modus mit....
  5. Artikel: Shell Command Injection - Wie fremder Text in das Terminal gelangt

    Artikel: Shell Command Injection - Wie fremder Text in das Terminal gelangt: Man möchte sicher nicht, dass ein Fremder einen Befehl in das Terminal eingibt. Und doch kann es genau dazu kommen, wenn Skripte auf dem System...