2016-05-27 6 views
1

Wie kann ich Alias, die überprüfen, ob ich im Verzeichnis "python27" bin, und wenn nicht, wird in dieses Verzeichnis gehen, ein Skript ausführen und zurück zum Home-Verzeichnis kommen? Wenn ich im "python27" -Verzeichnis bin, sollte es nur Skript ausführen und zurück zum Home-Verzeichnis kommen. Ich meine etwas in der Art:Linux-Alias ​​mit Überprüfung Verzeichnis

alias p="if [ pwd != /home/myname ] then cd python27 && python $1 && cd ~ else python $1 && cd ~ fi" 

Antwort

1

Verwenden Sie keinen Alias, verwenden Sie stattdessen eine Funktion.

Sie müssen nicht überprüfen, ob Sie im Verzeichnis python27 sind, nur cd dort, führen Sie das Skript und cd nach Hause.

Etwas Ähnliches, mit minimaler Kontrolle:

p() { 
    if [[ -z $1 ]]; then 
     echo >&2 "need an argument" 
     return 1 
    fi 
    if ! cd /full/path/to/python27; then 
     echo >&2 "can't cd to python27" 
     return 1 
    fi 
    python "$1" 
    cd ~ 
} 

Sie auch python "[email protected]" statt python "$1" im Fall verwenden könnten müssen Sie mehr Argumente zu übergeben (zum Beispiel Optionen).

+0

Wo sollte ich diese Funktion schreiben? – user6390359

+0

@ user6390359: entweder direkt im Terminal (und das wäre nur für diese Sitzung gültig); oder fügen Sie es am Ende Ihrer '.bashrc'-Datei ein: Dann wird es jedes Mal geladen, wenn Sie ein neues Terminal öffnen. –

Verwandte Themen