Ich versuche, ein Bash-Skript zu schreiben, das eine Funktion enthält. Wenn also eine Datei usw. angegeben .tar
wird .tar.bz2
, .tar.gz
wird tar mit den entsprechenden Schaltern verwendet, um die Datei zu dekomprimieren.
Ich verwende if elif then-Anweisungen, die den Dateinamen testen, um zu sehen, womit er endet, und ich kann ihn nicht mithilfe von Regex-Metazeichen in Übereinstimmung bringen.
Um zu vermeiden, dass das Skript, das ich mit 'test' in der Befehlszeile verwende, ständig neu geschrieben wird, dachte ich, dass die folgende Anweisung funktionieren sollte. Ich habe jede mögliche Kombination von Klammern, Anführungszeichen und Metazeichen ausprobiert und es schlägt immer noch fehl.
test sed-4.2.2.tar.bz2 = tar\.bz2$; echo $?
(this returns 1, false)
Ich bin mir sicher, dass das Problem einfach ist und ich habe überall gesucht, aber ich kann mir nicht vorstellen, wie es geht. Weiß jemand, wie ich das machen kann?