有没有办法每天自动执行bash脚本,也就是说我希望每次第一次打开shell终端时都执行bash脚本?
谢谢!
答案 0 :(得分:4)
如果您希望仅在打开shell终端时运行脚本,请将其添加到~/.bashrc
,/etc/bash.bashrc
或/etc/bashrc
文件中。这将在任何时候启动交互式非登录shell时执行。
如果您希望每天执行该操作,请在/etc/crontab
或crontab -e
答案 1 :(得分:4)
从用户的角度来看,Bash有两个文件在启动时执行“setup”:
.bash_profile
- 每当您打开交互式登录 shell时,都会执行此文件。在某些分发或配置中,此文件也可能被命名为.profile
。 .profile
通常用于非Bash特定配置项。另请注意,如果您使用少量.bash_login
,.bash_profile
将阻止使用该文件,尽管它是等效的。 .bash_profile
是标准的。.bashrc
- 为所有其他bash实例执行此文件。请注意,人们通常会从.bashrc
致电.bash_profile
来创建一致性。登录时会生成登录shell;通过ssh,telnet,在控制台等处。你也可以通过在su
下启动shell来强制启动登录shell(强制.bash_profile),如下所示:
su - username
此处,短划线表示应将其作为登录shell进行处理。
但是,除非您确定每天登录一次且每天只登录一次,否则这些似乎都不是您问题的正确答案。
在您的情况下,更好的方法是使用cron
。 Crontab允许您安排作业以任何所需的间隔运行。对于日常执行,您可能需要像这样配置的行:
0 5 * * * /home/user/script
这会导致用户的脚本每天凌晨5点执行。列是:
0 5 * * *
^ ^ ^ ^ ^------ Day of week
^ ^ ^ ^-------- Month of year
^ ^ ^---------- Day of month
^ ^------------ Hour of day
^-------------- Minute of hour
这些字段中的每一个也可以表示以逗号分隔的列表或甚至是算术表达式。例如,以下内容将在凌晨5点执行脚本四次:
*/4 5 * * *