我有一个名为的文件~/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 会话中为每个用户提供所有定义,并且可以在单独的文件中维护信息。