Senden Sie das Ergebnis mehrerer Befehle an eine Textdatei?
Frage
Das ist, was ich habe so weit - meine Dropbox öffentlichen URL Erstellungsskript für ein Verzeichnis der öffentlichen URLs ( getdropbox.com - gpl glaube ich). Meine LIST
Datei wurde mit ls in der folgenden Art und Weise erstellt:
ls -d ~/Dropbox/Public/PUBLICFILES/* > LIST
dropboxpuburl.sh:
for PATH in `cat LIST`
do
echo $PATH
dropbox puburl $PATH > ~/URLLIST/$PATH
done
Jetzt entsteht eine ganze Reihe von Dateien - jeweils mit dem Dropbox puburl in ihnen
.Die Frage ist: Wie kann ich das Skript verursachen alle öffentlichen Verbindungen in eine Textdatei umleiten, die jeweils auf einer neuen Zeile - vielleicht mit dem Namen PUBLIC-DIRECTORY-LIST
Lösung
Ist das, was Sie erreichen wollen?
for PATH in `cat LIST`
do
echo $PATH
dropbox puburl $PATH >> filename
done
Andere Tipps
OK, ich habe es arbeiten, um die Vorschläge mit mir gegeben hier:
for PATH in `cat LIST`
do
echo $PATH
dropbox puburl $PATH
done > PUBLIC-DIRECTORY-LIST
Es erstellt eine Liste der Verzeichnisse, und unter ihnen die Öffentlichkeit Link. Nun ist es Zeit, um die Verzeichnisse für eine saubere Textdatei von Links zu beschneiden.
Das => erstellt die Dateien und fügt etwas in der ersten Zeile. >> anhängt, um es auf eine neue Zeile.
echo txt=>PUBLIC-DIRECTORY-LIST.txt |
echo another text>>PUBLIC-DIRECTORY-LIST.txt
Sie sollten while read
mit Eingabeumleitung statt for
mit cat filename
verwenden. Auch, um Variablennamen Konflikte zu vermeiden, änderte ich Ihre Pfadvariablen in Kleinbuchstaben, da die Shell alle Caps ein bereits verwendet. Es wird nicht Ihre interaktive Shell beeinflussen, aber es könnte etwas in Ihrem Skript beeinflussen.
Auch unter der Annahme, dass Sie die Zeilen aus Ihrer Eingabedatei wollen dem Bildschirm als Statusanzeige angezeigt werden, aber nicht in der Ausgabedatei erfasst, sendet diese echo
es stderr
.
while read path
do
echo $path >&2
dropbox puburl $path
done < LIST > PUBLIC-DIRECTORY-LIST