保持文件数据始终可供 Bash 使用,无需重复执行(重启后也是如此)

保持文件数据始终可供 Bash 使用,无需重复执行(重启后也是如此)

我有一个名为的文件~/myScripts/assignments.sh,其中包含各种赋值,例如变量和别名。以下是该文件的一些内容:

drt="/var/www/html"
rss="/etc/init.d/php*-fpm restart && systemctl restart nginx.service"

alias drt="cd ${drt}"
alias rss="${rss}"

从安装完操作系统的那一刻起,我就经常使用这些任务,尤其是编写更简洁的脚本来安装、配置和维护我的网络服务器和相邻软件。

因此,该文件至关重要总是被导出reboot,在任何 Bash 会话启动后(也在 后),其数据将始终在所有 Bash 会话中可用。

为了实现这一目标,我想到了以下糟糕的脚本:

source ~/myScripts/assignments.sh # Immediate availability;
printf "\n%s" "source ~/myScripts/assignments.sh" >> ~/.profile
cat > "cron_daily.sh" <<< "source ~/myScripts/assignments.sh"

crontab <<-"CRONTAB"
    0 0 * * * ~/myScripts/cron_daily.sh # Permanent availability (after the one minute gap);
CRONTAB

实现我上面描述的状态的好方法是什么?

更新

我认为避免采购该文件,然后添加source ~/myScripts/assignments.sh到 bash.bashrc 中的原因是我看到一些 devopsbash.bashrc一般不愿意采购。不过,当文件未自定义或只有如此小的更改时,通常不是问题。

答案1

如果“所有”bash 会话都需要分配,只需将文件放在类似的位置/etc/assignments并从 全局获取它/etc/bash.bashrc

将其附加到/etc/bash.bashrc

source /etc/assignments

这样,您就可以在所有 bash 会话中为每个用户提供所有定义,并且可以在单独的文件中维护信息。

相关内容