Ergebnis 1 bis 9 von 9
  1. #1
    Carola
    Themenstarter

    Registriert
    11.2005
    Beiträge
    114

    Alias in .profile

    Liebe Macsperten,

    ich habe mit pico -w im Home-Verzeichnis das File .profile angelegt, um dort einige Aliases für das Terminal dauerhaft abzulegen.

    Interessanterweise funktionieren die Aliases dann aber nur teilweise. So bekomme ich beim ls-Befehl nun schon alle Daten angezeigt und bei rm fragt bash nach, ob ich mir wirklich sicher bin, bei copy-Befehlen hingegen ignoriert die Shell meine Änderung.

    Was hab ich falsch gemacht?
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Alias in .profile-bild-1.pdf  

  2. #2
    Hadelner Sommerprinz Avatar von quarx
    Registriert
    04.2005
    Ort
    Budenheim
    Alter
    36
    Beiträge
    8.528
    Aliase sollten nicht rekursiv sein...

    Also besser
    Code:
    alias ll='ls -l'
    oder ähnliche Konstrukte.
    Wer A sagt, muss auch Rev. B sagen.
    AT-Bingo: #01 | #02 | #03 | #04 | #05 | #06

  3. #3
    Carola
    Themenstarter

    Registriert
    11.2005
    Beiträge
    114
    Danke für den Hinweis. Würde es jetzt aber mein cp-Alias-Problem lösen, wenn ich in .profile anstelle von

    Code:
    alias cp="cp i"
    alias ci="cp -i"
    setzen würde?

  4. #4
    Hadelner Sommerprinz Avatar von quarx
    Registriert
    04.2005
    Ort
    Budenheim
    Alter
    36
    Beiträge
    8.528
    Zitat Zitat von rcsapo
    Danke für den Hinweis. Würde es jetzt aber mein cp-Alias-Problem lösen, wenn ich in .profile anstelle von

    Code:
    alias cp="cp i"
    alias ci="cp -i"
    setzen würde?
    Ex-akt.

    Edit: Es sei denn, Du benutzt auch CVSRCS. Da gibt es das Kommando 'ci' anscheinend bereits. Dieses würde durch das Alias wahrscheinlich überschrieben.
    Geändert von quarx (31.07.2006 um 15:29 Uhr) Grund: CVS->RCS, danke pepi
    Wer A sagt, muss auch Rev. B sagen.
    AT-Bingo: #01 | #02 | #03 | #04 | #05 | #06

  5. #5
    Carola
    Themenstarter

    Registriert
    11.2005
    Beiträge
    114
    Gut habe zwar leider keine Ahnung was CVS sind, jedoch mein Alias sowohl auf cpi als auch ci umgetauft, womit zwar immer brav kopiert wird, mir jedoch keine Nachfrage angezeigt wird. Wieso geht das bei rm sofort und hier nicht?

  6. #6
    Hadelner Sommerprinz Avatar von quarx
    Registriert
    04.2005
    Ort
    Budenheim
    Alter
    36
    Beiträge
    8.528
    Zitat Zitat von rcsapo
    Gut habe zwar leider keine Ahnung was CVS sind, jedoch mein Alias sowohl auf cpi als auch ci umgetauft, womit zwar immer brav kopiert wird, mir jedoch keine Nachfrage angezeigt wird. Wieso geht das bei rm sofort und hier nicht?
    'cp -i' fragt nur beim Überschreiben, also nicht immer.
    Wer A sagt, muss auch Rev. B sagen.
    AT-Bingo: #01 | #02 | #03 | #04 | #05 | #06

  7. #7
    Cellini
    Registriert
    09.2005
    Beiträge
    8.740
    @quarx
    Ein Alias überschreibt zum Glück nix. Allerdings werden aliase vor der Suche im PATH berücksichtigt. Auch wird ein alias keine Rekursion erwirken wenn man ls auf "ls --wasauchimmer" aliased.

    Ich unterstütze allerdings den Vorschlag im gegebenen Fall, ll als Alias zu verwenden.

    Man sollte in den meisten Fällen ein Command nicht direkt aliasen sondern einen anderen Namen verwenden um Konflikte mit anderen Programmen oder Skripten zu vermeiden die mit bestimmter Funktionalität nicht rechnen.


    Das command /usr/bin/ci(1) gibt es allerdings tatsächlich schon (check in RCS revisions) Ist also noch RCS und nichtmal CVS.

    Auszug aus man 1 cp:
    Code:
         -i    Cause cp to write a prompt to the standard error output before
               copying a file that would overwrite an existing file.  If the
               response from the standard input begins with the character `y' or
               `Y', the file copy is attempted.  (The -i option overrides any pre-
               vious -f or -n options.)
    Demnach fragt cp -i nur nach wenn es eine Datei überschreiben müßte. rcsapo, war das im bei Dir der Fall?




    Tip zur bash Initialisierung:
    Es ist heutzutage besser die bash initialisierung als ~/.bash_profile anzulegen, als als .profile. Dann hat man auch weniger quirks mit der ~/.bashrc.

    Genereller Tip zu Shell Skripten:
    Immer brav kommentieren warum man etwas dort hineingeschrieben hat und was es genau tut. Wenn Du das in 3 Monaten (oder 3 Tagen) wieder liest, fragst Du Dich recht wahrscheinlich warum das so ist.
    Jede Zeile die mit # beginnt wird als Kommentar gewertet.
    Gruß Pepi

  8. #8
    Hadelner Sommerprinz Avatar von quarx
    Registriert
    04.2005
    Ort
    Budenheim
    Alter
    36
    Beiträge
    8.528
    Zitat Zitat von pepi
    @quarx
    Ein Alias überschreibt zum Glück nix. Allerdings werden aliase vor der Suche im PATH berücksichtigt. Auch wird ein alias keine Rekursion erwirken wenn man ls auf "ls --wasauchimmer" aliased.
    Das mit der Reihenfolge beim PATH-Durchsuchen meinte ich auch so. Dass rekursive Aliase doch gehen, war mir nicht so klar. Könnte aber mindestens für Verwirrung sorgen.
    Zitat Zitat von man bash
    Aliases allow a string to be substituted for a word when it is used as the first word of a simple command. The shell maintains a list of aliases that may be set and unset with the alias and unalias builtin commands (see SHELL BUILTIN COMMANDS below). The first word of each command, if unquoted, is checked to see if it has an alias. If so, that word is replaced by the text of the alias. The alias name and the replacement text may contain any valid shell input, including the metacharacters listed above, with the exception that the alias name may not contain =. The first word of the replacement text is tested for aliases, but a word that is identical to an alias being expanded is not expanded a second time. This means that one may alias ls to ls -F, for instance, and bash does not try to recursively expand the replacement text. If the last character of the alias value is a blank, then the next command word following the alias is also checked for alias expansion.

    Aliases are created and listed with the alias command, and removed with the unalias command.
    Wer A sagt, muss auch Rev. B sagen.
    AT-Bingo: #01 | #02 | #03 | #04 | #05 | #06

  9. #9
    Carola
    Themenstarter

    Registriert
    11.2005
    Beiträge
    114
    Ja, "cp -i" alias "cp" fragt beim Überschreiben von Dateien nach, ob es wirklich soll. Damit passt eigentlich eh alles. Ich werde mich jedoch der Meinung der Experten beugen und auch auf einen alternativen Befehlsnamen ausweichen.

    Danke für die Hilfe (auch wenn ich zu meiner Schande gestehen muss, dass ich auch selbst im Manual hätte nachschauen können).

    Ihr seid super!

Ähnliche Themen

  1. Neuinstallation und alte Profile???
    Von ulrichbi im Forum OS X
    Antworten: 3
    Letzter Beitrag: 04.01.2006, 11:20
  2. colorsync, richtige Profile
    Von mia im Forum OS X
    Antworten: 0
    Letzter Beitrag: 20.12.2005, 15:01

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •