Envoyer le résultat de plusieurs commandes dans un seul fichier texte?
Question
C’est ce que j’ai jusqu’à présent - ma boîte de dépôt publique script de création d'URL pour un répertoire des URL publiques ( getdropbox.com - gpl je pense). Mon fichier LIST
a été créé avec ls de la manière suivante:
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 toute une série de fichiers, chacun contenant le puburl de la boîte de dépôt.
La question qui se pose est la suivante: comment faire en sorte que ce script redirige tous les liens publics dans un seul fichier texte, chacun sur une nouvelle ligne - éventuellement avec le nom PUBLIC-DIRECTORY-LIST ? >
La solution
Est-ce ce que vous essayez d'atteindre?
for PATH in `cat LIST`
do
echo $PATH
dropbox puburl $PATH >> filename
done
Autres conseils
OK, je le fais en utilisant les suggestions qui me sont données 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. Il est maintenant temps d'élaguer les répertoires pour obtenir un fichier texte propre contenant des liens.
Le = > crée les fichiers et ajoute quelque chose à la première ligne. > > y ajoute une nouvelle ligne.
echo txt=>PUBLIC-DIRECTORY-LIST.txt |
echo another text>>PUBLIC-DIRECTORY-LIST.txt
Vous devez utiliser en lecture
avec la redirection d'entrée au lieu de pour
avec cat nomfichier
. Aussi, afin d'éviter les conflits de noms de variables, j'ai changé votre variable de chemin d'accès en minuscule car le shell utilise déjà la version tout en majuscule. Cela n'affectera pas votre shell interactif, mais cela pourrait affecter quelque chose dans votre script.
En outre, si vous souhaitez que les lignes de votre fichier d'entrée soient affichées à 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