2016-07-09 8 views
0

Ich versuche, ein kleines Skript zu schreiben, die Überprüfung der Versionsänderungen zwischen Latex-Dateien zu rationalisieren. In dem Skript verwende ich git show, um die angegebene Version der Datei zu ziehen, aber ich habe Probleme.Git-Show funktioniert nicht in BASH-Skript

Hier ist mein Skript so weit:

#!/bin/bash 

# A cl interface to compare changes between git versions of a latex doc 

# Select tex file to examine 
tex1=$(ls *.tex| slmenu -p "Select a tex file: ") 

## Select branch 
branches=$(git branch | cut -c3-)"\nHEAD" 
branch=$(echo $branches | slmenu -p "Select the branch to compare to:") 

# Select how many steps ago 
echo "How far back? (see git reflog)" 
read steps 

treeish=$(echo $branch'~'$steps":'"$tex1"'") 

echo "Will compare to this branch position:" 
echo $treeish 

git show $treeish > temp.tex 

Die Datei, die ich auf die Prüfung bin Leerzeichen hat. Wenn der Code ausgeführt werden hier die volle Leistung zusammen mit dem Fehler:

Select a tex file:  SMART Reporting Tutorials.tex SMART Reporting Tutorials.tex 
    Select the branch to compare to: HEAD  HEAD 
How far back? (see git reflog) 
1 
Will compare to this branch position: 
HEAD~1:'SMART Reporting Tutorials.tex' 
fatal: Path ''SMART' does not exist in 'HEAD~1' 

Der Fehler in Zeile geschieht 21, wenn sie versuchen git show $treeish > temp.tex

jedoch laufen, wenn ich die Ergebnisse des Echos zu kopieren, HEAD~1:'SMART Reporting Tutorials.tex' und manuell schreiben sie in das Terminal mit git show:

git show HEAD:'SMART Reporting Tutorials.tex' 

ich sehe es ganz gut funktioniert. Also meine Frage ist ... Warum schlägt das in meinem BASH-Skript fehl, funktioniert aber gut, wenn ich es in das Terminal eingebe?

Antwort

1

Möglicherweise müssen Sie $ treeish angeben, um die Interpretation von Leerzeichen zu verhindern. Ihre letzte Zeile wäre:

git show "$treeish" > temp.tex 
+0

Wunderbar! Das hat es behoben! –

+0

Für die Ausarbeitung auf diese ... Die Antwort auf [diesen Beitrag] (http://stackoverflow.com/questions/10067266/when-to-wrap-quotes-around-a-variable) gibt eine gute Erklärung dazu. –