Frage

Kurze Frage. Ich liebe Emacs. Ich hasse es wenn Sachen eingeben, so dass ich wie zu verwenden e aufzurufen Emacs.

Bisher hatte ich meine Bash_profile (OS X) konfiguriert als: alias e="emacs .". Aber ich war müde von immer noch Emacs eingeben zu müssen {file}, wenn ich will nur bearbeiten eine Datei.

Also habe ich versucht, diese bis zu peitschen, von einigen googeln, aber bash über die [] beschwert:

###smart emacs, open file, or if none, dir 
e()
{
    if [$1]; then
        emacs $1
    else
        emacs .
    fi
}

Das möchte ich nutzen, um zu tun. e something.c oder nur e

War es hilfreich?

Lösung

#!/bin/bash                       

###smart emacs, open file, or if none, dir
e()
{
    if [[ -z "$1" ]]; then # if "$1" is empty
        emacs .
    else
        emacs "$1"
    fi
}

Andere Tipps

Versuchen

if [ $# -ge 1 ]; then
  emacs "$@"

Ich denke, bash über Räume sehr eigentümlich ist. Ich bin selbst überrascht sind Sie erlauben einen Raum zwischen Funktionsnamen und () zu verzichten. (Auch $ mit @ sollten alle Dateien öffnen Sie weitergeben.)

ETA: bessere Kontrolle gegen Anzahl von Argumenten, bei e "" foo.txt ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top