¿Enviar el resultado de múltiples comandos a un archivo de texto?
Pregunta
Esto es lo que tengo hasta ahora: mi dropbox public URL script de creación para un directorio de URL públicas ( getdropbox.com : creo que es gpl). Mi archivo LIST
fue creado usando ls de la siguiente manera:
ls -d ~/Dropbox/Public/PUBLICFILES/* > LIST
dropboxpuburl.sh:
for PATH in `cat LIST`
do
echo $PATH
dropbox puburl $PATH > ~/URLLIST/$PATH
done
Ahora, esto crea una serie completa de archivos, cada uno con el buzón de Dropbox en ellos.
La pregunta es: ¿cómo puedo hacer que este script redirija todos los enlaces públicos a un archivo de texto, cada uno en una nueva línea? quizás con el nombre PUBLIC-DIRECTORY-LIST ?
Solución
¿Es esto lo que estás tratando de lograr?
for PATH in `cat LIST`
do
echo $PATH
dropbox puburl $PATH >> filename
done
Otros consejos
Está bien, lo tengo funcionando usando las sugerencias que me dieron aquí:
for PATH in `cat LIST`
do
echo $PATH
dropbox puburl $PATH
done > PUBLIC-DIRECTORY-LIST
Crea una lista de los directorios, y debajo de ellos el enlace público. Ahora es el momento de eliminar los directorios para un archivo de texto limpio de enlaces.
El = > crea los archivos y agrega algo a la primera línea. > > se le agrega en una nueva línea.
echo txt=>PUBLIC-DIRECTORY-LIST.txt |
echo another text>>PUBLIC-DIRECTORY-LIST.txt
Debe usar mientras lee
con redirección de entrada en lugar de para
con cat filename
. Además, para evitar conflictos de nombres de variables, cambié su variable de ruta de acceso a minúsculas ya que el shell ya usa el de mayúsculas. No afectará tu shell interactivo, pero podría afectar algo en tu script.
Además, suponiendo que desea que las líneas de su archivo de entrada se muestren en la pantalla como un indicador de progreso, pero que no se capturen en su archivo de salida, este echo
lo envía a stderr
.
while read path
do
echo $path >&2
dropbox puburl $path
done < LIST > PUBLIC-DIRECTORY-LIST