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?