我可以与应用程序一起运行 Shell 脚本吗?

我可以与应用程序一起运行 Shell 脚本吗?

我编写了一个小脚本,用于在关闭 Chrome 后自动删除缓存:

#!/bin/bash

while true; do
    if [[ $(pgrep -l chrome) ]]; then
        sleep 20
    else
        rm -rf ~/.cache/google-chrome/Default/Cache/*
        rm -rf ~/.cache/google-chrome/Default/"Media Cache"/*
        notify-send "CCD" "Cache deleted!"
        break    
fi
done

现在我不想每次都手动运行这个脚本,我希望它在启动 Chrome 时自动在后台运行。我尝试使用 Ubuntu Tweak 编辑 Chrome 快捷列表: 在此处输入图片描述

但正如我所料,它没有起作用。那么,还有其他方法吗?

答案1

只需将脚本的完整路径添加到其中,Startup Applications即可使其在登录时自动启动。打开 Unity Dash 并将其添加为新命令。当然,请确保您的脚本具有可执行权限chmod +x /path/to/script.sh

在此处输入图片描述

为了解决 chrome 在启动时删除缓存的问题(正如评论中提到的,这是不可取的),使用 while 循环轮询来等待 chrome 出现。

while true; do

    # Wait for chrome window to appear
    while ! pgrep -l 'chrome' ; do : ; sleep 20; done 

    # Now wait for it to disappear
    while pgrep -l 'chrome' ; do : ; sleep 20; done 

    # Once chrome window disappears, delete cache.
    rm -rf ~/.cache/google-chrome/Default/Cache/*
    rm -rf ~/.cache/google-chrome/Default/"Media Cache"/*
    notify-send "CCD" "Cache deleted!"

    # And at this point we restart the whole process again.

done

相关内容