2009-10-23 24 views
1

C'est ce que j'ai jusqu'ici - mon script de création publique dropbox URL pour un répertoire d'URL publiques (getdropbox.com - gpl je pense). Mon fichier LIST a été créé en utilisant ls de la façon suivante:Envoyer le résultat de plusieurs commandes à un fichier texte?

ls -d ~/Dropbox/Public/PUBLICFILES/* > LIST 

dropboxpuburl.sh:

for PATH in `cat LIST` 
do 
    echo $PATH 
    dropbox puburl $PATH > ~/URLLIST/$PATH 
done 

Maintenant, cela crée une série de fichiers - chacun avec le dropbox puburl en eux.

La question est: Comment puis-je faire que ce script redirige tous les liens publics dans un fichier texte, chacun sur une nouvelle ligne - peut-être avec le nom PUBLIC-DIRECTORY-LIST?

Répondre

3

Est-ce ce que vous essayez d'atteindre?

for PATH in `cat LIST` 
    do 
     echo $PATH 
     dropbox puburl $PATH >> filename 
    done 
+0

Vous voudrez probablement supprimer le fichier ou le réinitialiser pour qu'il soit vide avant cette boucle. – ndim

+0

Cela ne liste pas la sortie dans le fichier - seulement la commande - mais je l'ai fonctionné - devrais-je répondre à ma propre question? – user191960

+0

Cependant, mon script liste le chemin puis la sortie. – user191960

0

Le signe => crée les fichiers et ajoute quelque chose à la première ligne. >> l'ajoute sur une nouvelle ligne.

echo txt=>PUBLIC-DIRECTORY-LIST.txt | 
echo another text>>PUBLIC-DIRECTORY-LIST.txt 
1

OK, je l'ai obtenu ce travail en utilisant les suggestions données me ici:

for PATH in `cat LIST` 
do 
    echo $PATH 
    dropbox puburl $PATH 
done > PUBLIC-DIRECTORY-LIST 

Il crée une liste des répertoires, et en dessous le lien public. Maintenant, il est temps d'élaguer les répertoires pour un fichier texte propre de liens.

0

Vous devez utiliser while read avec la redirection d'entrée au lieu de for avec cat filename. En outre, afin d'éviter les conflits de noms de variables, j'ai changé votre variable de chemin en minuscules, car l'interpréteur utilise déjà toutes les majuscules. Cela n'affectera pas votre shell interactif, mais cela pourrait affecter quelque chose dans votre script. En outre, en supposant que vous souhaitiez que les lignes de votre fichier d'entrée s'affichent à l'écran en tant qu'indicateur de progression, mais ne soient pas capturées dans votre fichier de sortie, ce echo l'envoie à stderr.

while read path 
do 
    echo $path >&2 
    dropbox puburl $path 
done <LIST> PUBLIC-DIRECTORY-LIST