2017-05-02 1 views
1

Ich versuche Alias ​​für ein Standard-Commit-Nachricht, um so etwas fügen:Alias ​​in bash hinzufügen aktuelles Datum zu git formatierte Nachricht begehen

alias gc='git commit -m "Default commit: $(date)"' 

aber ich weiß nicht wie Standardformat Datum und mag um es zu diesem zu ändern:

date +'%A, %d %B %Y %H:%M:%S' # Tuesday, 02 May 2017 23:12:07 

Ich laufe auf Problem, wie man dieses im Alias ​​baut. Ich kann nicht mit mehreren doppelten und einfachen Anführungszeichen umgehen. Kann jemand helfen?


Bearbeiten.

Danke für den Vorschlag zur Verwendung der Funktion und des Codes. Basierend auf, dass ich das gemacht habe, leicht verändert:

gc() 
{ 
    if [ "$#" == "0" ]; then 
     itsmsg="Deafult commit"; 
    else 
     itsmsg="$*"; 
    fi; 
    git commit -m "$itsmsg ($(date +'%A, %d %B %Y %H:%M:%S'))" 
} 
+2

Verwenden Sie stattdessen eine Funktion. – 123

+0

Sortieren von Duplikat-ish: [Wie einfache Anführungszeichen in Bash/Grep entkommen] (http://Stackoverflow.com/q/7254509/1072112) – ghoti

Antwort

2

ANSI-C zitiert, so dass Sie einfache Anführungszeichen in einfache Anführungszeichen entkommen:

alias gc=$'git commit -m "Default commit: $(date +\'%A, %d %B %Y %H:%M:%S\')"' 
+1

Danke, es funktioniert perfekt! – Celdor

+0

Wenn Sie drei Formen von Anführungszeichen verwenden, sind Sie in Schwierigkeiten, wenn Sie eine weitere Verschachtelungsstufe wünschen. Wie verschachteln Sie einfache Anführungszeichen in einfache Anführungszeichen? 'Echo 'Sie können' \ 't.'' – ghoti

3

Wie @ 123 erwähnt, sollten Sie eine Funktion verwenden, anstelle eines Alias. Dies eliminiert ein Anführungszeichen.

gc() { 
    git commit -m "Default commit: $(date +'%A, %d %B %Y %H:%M:%S')" "[email protected]" 
} 
+0

Danke. Es ist in der Tat eine von anderen Lösungen. Aber ich weiß nicht, wo man Funktionen definiert und wie man sie in der Shell verwendet. Außerdem ist der GC-Zweck, schnell zu begehen. Wenn ich benutzerdefinierte Nachricht benötigte, würde ich den vollständigen Befehl eingeben. Ich werde mit der Funktion geifern und sehen, wie es geht. – Celdor

+1

Sie definieren die Funktion an der Stelle, an der Sie derzeit Ihren Aliasnamen definieren, und Sie verwenden ihn wie jeden anderen Befehl. – chepner

+0

Um es klar zu sagen, wir sprechen hier über Shell-Aliase, nicht git Aliase, wie im '[alias]' - Abschnitt Ihrer '~/.gitconfig' Datei definiert wäre. – ghoti