Önceki içerik değiştiğinde pano içeriğini kopyalayan bir kabuk betiği yazmak istiyorum (yalnızca düz metin). Her seferinde betiği başlattığımda bir şey kopyaladığımda (panoya ait içerik değişiyorsa) betiği yeni değerleri bir dosyaya kopyalar.
Doğru çalışan bir senaryo yazdım:
#!/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
Bu çözümü pek sevmiyorum. Bu sorunu çözmenin farklı yolları olmalı.
1) Pano içeriğini alın, bir değişkende saklayın ve bu değeri panodaki geçerli değerle karşılaştırın (çözümüm.)
2) Basılı tuşa basın CMD + C . Kullanıcı bastığında CMD + C (panoya bir şey kopyalamak için kısayol) neredeyse kesinlikle pano içeriği değişir, ancak ek kitaplıklar yüklemeden tuş vuruşunu tespit edip edemeyeceğimi bilmiyorum.
3) Süreci görün.
Pboard işleminin cpu veya mem kullanımını izleyebilir (panoya bir şey kopyalarken bu yüzde değişimin değeri)?
Veya (mümkün mü bilmiyorum) sürecin alanını ele alabilir miyim?
Benim sorum bu:
Sizce, 2 ve 3 alternatiflerini göz önünde bulundurarak yazdığım senaryoya daha iyi bir alternatif var mı?