我想/etc/xdg/lxsession/LXDE/autostart
在运行之前更改一些参数。我从 grep 命令获取参数。我想将它们添加到autostart
文件中,但不知道如何。
目前,我所拥有的是grep "stuff" /file/one
输出 1234。
我想将 1234 放入autostart
文件中,例如
....
@program 1234
....
答案1
与往常一样,可能有一百万种方法可以做到这一点,而我阅读你的问题的方式是你以错误的方式解决你的问题,但首先是第一件事。
正确输入用户名和密码后,所有脚本/etc/X11/Xsession.d
均按字母顺序获取(不是运行,这是一个非常重要的区别!)。因此,如果您希望在登录后但桌面环境启动之前发生一些逻辑,那么这就是放置脚本的地方。
在这样的脚本中你可以把
for item in $(grep "stuff" /file/one)
do
echo "@program ${item}" >> /etc/xdg/lxsession/LXDE/autostart
done
这将添加您想要添加到文件中的行。 '>>' 使 shell 将行追加到文件末尾,而不是替换文件。这就是你问题的答案。
grep
现在的问题是:使用这样的脚本,每次登录计算机时,您的结果都会添加到自动启动文件中。所以第一次该程序会运行一次。下次登录两次,下次登录三次。只要 grep 生成要添加到自动启动文件的结果,自动启动程序的列表就会不断增长。这就是为什么我一开始说你解决问题的方式是错误的。
此外,不仅仅是全球性的/etc/xdg/lxsession/LXDE/autostart
。您可以~/.config/lxsession/LXDE/autostart
为每个单独的用户创建一个文件。即使您是在计算机上工作的唯一用户,您也应该编辑主目录中的文件(~
扩展到您的主目录)而不是全局文件。
作为最后的建议,如果您想运行程序,只需向您的~/.config/lxsession/LXDE/autostart
for shell 脚本添加一个条目,该脚本执行如上所述的 for 循环,而不是向某些文件添加行,而是实际运行命令。当您运行&
行尾带有 的命令时,这些程序将在后台运行,并且脚本不会阻塞。