如何在应用程序开始运行之前强制执行命令

Uda*_*ale 3 startup scripts

我想在打开任何应用程序之前通过 bash 脚本执行某些操作,例如。firefox/deluge/VLC 通过 GUI 或 CLI。该脚本应该只为某些应用程序而不是所有应用程序执行。如何做到这一点?

roa*_*dmr 5

利用路径是按顺序搜索应用程序的事实。

roadmr@blackdog:~$ which firefox
/usr/bin/firefox
roadmr@blackdog:~$ echo $PATH
/home/roadmr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Run Code Online (Sandbox Code Playgroud)

因此,当您尝试运行“firefox”时,它将在这些目录中搜索,最终会在其中找到/usr/bin并执行。

但是,如果您放置一个以firefoxeg命名的包装器/usr/local/bin,它执行您需要的预运行操作并最终调用/usr/bin/firefox(此处为绝对路径,否则您将进入循环),那么只要有人运行“firefox”,就会使用此包装器"(并注意.Desktop启动器还只指定了“firefox”,一个仍将在 中搜索的相对名称PATH)。这是因为在路径搜索顺序/usr/local/bin/firefox之前/usr/bin/firefox出现。