gpt4 book ai didi

macos - 如何通过运行脚本让我的所有终端/shell 重新加载它们的环境?

转载 作者:行者123 更新时间:2023-11-29 09:35:52 25 4
gpt4 key购买 nike

我在家里和工作中都使用我的 Mac。我使用一个名为 Marco-polo 的程序来检测我是在家还是在工作。通过这个,我可以让它运行一个脚本来更改我的代理,并运行一些脚本来为不同的环境配置我的计算机,比如复制 hosts.work 和 hosts.home over/etc/hosts 并复制 .profile.work 和 . profile.home 在 ~/.profile 之上。

到目前为止,我未能成功完成的是找到一种方法,让我所有正在运行的终端在我更改位置时重新加载我的 .profile 文件。任何人都可以建议这样做的方法吗?

谢谢,汤姆


下面的 fm48 答案与这个简单的脚本(位于/usr/bin/pkill)完美结合。

#!/bin/sh
sig=""
if [[ "$1" =~ - ]]; then
sig=$1;
shift
fi

for X in `ps acx | grep -i $1 | awk {'print $1'}`; do
kill $sig $X;
done

最佳答案

您应该使用像 SIGUSR1 这样的信号。首先使用 trap ". ${HOME}/.profile"SIGUSR1 启用重新加载 ~/.profile 的信号。

之后,您应该向所有 shell 发送 SIGUSR1 信号。例如 pkill -SIGUSR1 bash 如果 bash 是使用的 shell。

关于macos - 如何通过运行脚本让我的所有终端/shell 重新加载它们的环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7754661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com