![업데이트가 가능할 때 알림을 표시하는 스크립트 만들기](https://linux55.com/image/129311/%EC%97%85%EB%8D%B0%EC%9D%B4%ED%8A%B8%EA%B0%80%20%EA%B0%80%EB%8A%A5%ED%95%A0%20%EB%95%8C%20%EC%95%8C%EB%A6%BC%EC%9D%84%20%ED%91%9C%EC%8B%9C%ED%95%98%EB%8A%94%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%20%EB%A7%8C%EB%93%A4%EA%B8%B0.png)
crontab으로 실행되고 업데이트가 있으면 알림을 보내는 스크립트를 만들려고 합니다. 스크립트 자체에서는 오류가 발생하지 않지만 if 문에서는 "else" 부분만 작동합니다. 어떤 아이디어가 있나요?
#!/bin/bash
sudo apt update > ~/Desktop/UpdateInfo
update1=$(grep "package can be upgraded" ~/Desktop/UpdateInfo | cut -d' ' -f2,3,4,5)
var1="package can be upgraded."
if [ var1 = update1 ]
then
notify-send "Updates are available"
else
notify-send "test"
fi
답변1
var1
string 을 string 과 비교하고 있습니다 update1
. 이것들은 결코 동일하지 않을 것입니다. 변수를 비교하고 싶습니다.
if [ "$var1" = "$update1" ]
물론 모든 것을 다음과 같이 단순화할 수 있습니다.
sudo apt update | grep -q "package can be upgraded" && notify-send "Updates are available"
답변2
Debian 기반 배포판에서는 다음을 사용할 수 있습니다.pk-update-icon
팩:
업데이트 알림 트레이 아이콘 표시
이 가젯은 패키지 업데이트가 가능할 때 패널의 트레이 영역에 알림과 아이콘을 표시합니다. 주로 Xfce와 같이 아직 이 기능이 통합되지 않은 데스크탑용으로 설계되었습니다.
apt install pk-update-icon
cron 작업을 예약합니다. (제안 사항을 테스트하기 위한 짧은 지연 시간입니다.) 예를 들면 다음과 같습니다.
crontab -e
다음 줄을 지나치세요.
*/1 * * * * export DISPLAY=:0 ; /usr/bin/pk-update-icon -d 5 ; sleep 5 ; pkill pk-update-icon
답변3
일부 코드 오류가 있습니다.
#!/bin/bash
sudo apt update > ~/Desktop/UpdateInfo
update1=$(grep "package can be upgraded" ~/Desktop/UpdateInfo | cut -d' ' -f2,3,4,5)
var1="package can be upgraded."
if [[ "$var1" == "$update1" ]]; then
notify-send "Updates are available"
else
notify-send "test"
fi
$
를 사용하여 변수를 확장 해야 합니다 .
테스트를 사용할 때는 반드시 변수를 참조해야 합니다 [
. 기술적으로 테스트에서는 필요하지 않지만 [[
어쨌든 참조해야 합니다.