Script copia el contenido del portapapeles en un archivo

2

Quiero escribir un script de shell que copie el contenido del portapapeles (solo texto sin formato) cuando cambie el contenido anterior. Cuando ejecuto el script cada vez que copio algo (por lo que el contenido del portapapeles cambia), el script copia los nuevos valores en un archivo.

Escribí un script que funciona correctamente:

#!/bin/bash
prev=" "
while true
do
curr=$(pbpaste)
if [ "$curr" != "$prev" ]
then
   echo -n " " >> /Users/davide/desktop/file   
echo -n $curr >> /Users/davide/desktop/file     
fi
done

No me gusta mucho esta solución. Debe haber diferentes maneras de resolver este problema.

1) Obtenga el contenido del portapapeles, almacénelo en una variable y compare este valor con el valor actual del portapapeles (mi solución.)

2) Tecla de detección presionada CMD + C . Cuando el usuario presiona CMD + C (atajo para copiar algo en el portapapeles), es casi seguro que el contenido del portapapeles cambia, pero no sé si es posible detectar la pulsación sin instalar bibliotecas adicionales.

3) Ver el proceso.

¿Se puede monitorear el uso de la CPU o la memoria del proceso de pboard (al copiar algo en el portapapeles el valor de este cambio porcentual)?

O (no sé si es posible) puedo ver para abordar el espacio del proceso?

Así que mi pregunta es la siguiente:

En su opinión, ¿existe una mejor alternativa al guión que escribí, considerando las alternativas 2 y 3?

    
pregunta growing 04.06.2018 - 19:26

1 respuesta

0

Un producto como este ya existe y está disponible gratuitamente en la App Store: Flycut .

Desde su Github página del proyecto:

  

Guarda el elemento del historial del portapapeles que se muestra actualmente en un archivo, cerrando   el bisel Elimine el elemento del historial del portapapeles si mayúscula S   presionado. El recorte se guarda en un archivo en el escritorio, similar a cómo   OS X guarda las capturas de pantalla. "Escritorio / Clipping 2015-07-15 en   08.35.10.txt

    
respondido por el Allan 04.06.2018 - 19:57

Lea otras preguntas en las etiquetas