Frage
Ich habe versucht, den folgenden Bash-Skript auf meinem Internet Tablet (Nokia N810 läuft auf Maemo Linux) zu laufen. Aber es scheint nicht, dass es läuft, und ich habe keine Ahnung von dem, was mit diesem Skript falsch ist (es läuft auf meinem Ubuntu-System, wenn ich die Verzeichnisse ändern). Es wäre toll, ein Feedback auf diese oder ähnliche Erfahrungen dieses Problem zu erhalten. Danke.
WORKING="/home/user/.gpe"
SVNPATH="/media/mmc1/gpe/"
cp calendar categories contacts todo $WORKING
Lösung
Was passiert eigentlich, wenn Sie Ihren Skript ausführen? Es ist hilfreich, wenn Sie Details von Fehlermeldungen oder Verhalten beinhalten, dass unterscheidet sich von dem, was erwartet wird und in welcher Art und Weise.
Wenn $ WORKING enthält den Namen eines Verzeichnisses, versteckt oder nicht, dann ist die cp
sollten diese vier Dateien hinein kopieren. Dann ls -l /home/user/.gpe
sollten sie zeigen, und was sonst noch drin ist, und zwar unabhängig davon, ob es „versteckt“.
Durch die Art und Weise der anfängliche Punkt in einem Datei- oder Verzeichnisnamen nicht wirklich „verstecken“ der Eintrag, es ist nur, dass ls
und echo *
und ähnliche Befehle sie nicht zeigen, während diese tun:
ls -la
ls -d .*
ls -d {.*,*}
echo .*
echo {.*,*}
Andere Tipps
Der bash cp
Befehl kann kopiert mehrere Quellen zu einem einzigen Ziel, wenn es ein Verzeichnis.
Ist das Verzeichnis /home/user/.gpe
exist?
Beachten Sie, dass der führende Punkt im Namen kann es machen versteckt es sei denn, Sie verwenden ls -a
Ich habe versucht, die Befehle in Cygwin:
Aber ich verwenden .gpe
statt /home/user/.gpe
Ich habe ein touch calendar categories contacts todo
die Dateien zu erstellen.
Es hat gut funktioniert.
Wenn das die Gesamtheit des Skriptes ist, wird es zwei fehlen. möglich, drei Dinge:
- shebang Linie, wie
#!/bin/sh
zu Beginn - Verwendung von $ SVNPath. Sie wollen wahrscheinlich vor dem
cd $SVNPATH
Befehlcp
. Ihr Skript sollte nicht davon ausgehen, das aktuelle Arbeitsverzeichnis korrekt ist. - ausführen Möglicherweise Berechtigung für das Skript:
chmod a+x script
Haben Sie bereits das /home/user/.gpe Verzeichnis vorhanden haben? Und auch versuchen, einen -R Parameter hinzufügen, so dass die Verzeichnisse rekursiv kopiert werden.