Gagan Asked: 2021-09-29 04:43:22 +0800 CST2021-09-29 04:43:22 +0800 CST 2021-09-29 04:43:22 +0800 CST 仅在第一个会话中运行终端命令 772 我想运行一个命令以在我的终端中显示欢迎消息,但我希望它仅在桌面会话中的第一个终端会话中运行。我知道通过将命令添加到 .bashrc 来运行命令,但是这些命令会在每个终端会话中运行,并且我试图将我的命令限制在第一个会话中。有谁知道如何做到这一点?谢谢你。 我正在使用 Ubuntu 21.10 测试版,如果有区别的话。 linux bash 1 个回答 Voted Best Answer Marcus Müller 2021-09-29T05:10:35+08:002021-09-29T05:10:35+08:00 首先……在桌面会话中 因此,您需要与桌面会话进行交互! 想法:您检查存在于您的会话下的服务。如果它不存在,则打印欢迎消息,然后启动服务。 因此,编写一个用户服务,例如welcome-msg.service(如https://wiki.archlinux.org/title/systemd/User#Writing_user_units): ~/.config/systemd/user/welcome-msg.service : [Unit] Description=Welcome Message one-shot service [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/bin/true 然后,在你的~/.bashrc: # Check whether the service has been started if ! systemctl --user is-active --quiet welcome-msg; then echo "Welcome!" systemctl start welcome-msg fi
因此,您需要与桌面会话进行交互!
想法:您检查存在于您的会话下的服务。如果它不存在,则打印欢迎消息,然后启动服务。
因此,编写一个用户服务,例如
welcome-msg.service
(如https://wiki.archlinux.org/title/systemd/User#Writing_user_units):~/.config/systemd/user/welcome-msg.service :
然后,在你的
~/.bashrc
: