Voglio scrivere uno script di shell che copia il contenuto degli appunti (solo testo in chiaro) quando il contenuto precedente cambia. Quando lancio lo script ogni volta che copio qualcosa (quindi il contenuto degli appunti cambia) lo script copia i nuovi valori in un file.
Ho scritto uno script che funziona correttamente:
#!/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
Non mi piace molto questa soluzione. Ci devono essere diversi modi per risolvere questo problema.
1) Ottieni il contenuto degli appunti, archivia in una variabile e confronta questo valore con il valore corrente degli appunti (la mia soluzione).
2) Rileva tasto premuto CMD + C . Quando l'utente preme CMD + C (collegamento per copiare qualcosa negli appunti) quasi certamente il contenuto degli appunti cambia, ma non so se è possibile rilevare la sequenza di tasti senza installare ulteriori librerie.
3) Vedi il processo.
È possibile monitorare l'utilizzo della cpu o mem del processo pboard (quando si copia qualcosa negli appunti il valore di questa variazione percentuale)?
Oppure (non so se è possibile) posso vedere per affrontare lo spazio del processo?
Quindi la mia domanda è questa:
Secondo te, esiste un'alternativa migliore alla sceneggiatura che ho scritto, considerando le alternative 2 e 3?