在脚本shebang中使用“-l”的优点和缺点是什么

Pie*_*ier 4 bash login cron shell-script shebang

我最近想出了一个简单的解决crontab 日志问题的方法,我想知道使用这个特定修复程序的优点和缺点是什么(运行带有“登录外壳标志”的脚本),如下所示:

#!/bin/bash -l 
Run Code Online (Sandbox Code Playgroud)

ams*_*ams 9

[以下假设您未指定的“日志记录问题”与缺少环境设置有关,通常从您的个人资料继承。]

-l选项告诉 bash/etc从您的主目录中读取所有各种“配置文件”脚本。Bash 通常只对交互式会话执行此操作(其中 bash 不带任何命令行参数运行)。

普通脚本没有读取配置文件的业务;他们应该在给定的环境中运行。也就是说,您可能希望对个人脚本执行此操作,如果它们与您的环境紧密绑定并且您计划在正常会话之外运行它们。

crontab 是在会话外运行脚本的一个示例,所以是的,去做吧!

如果脚本纯粹是为了使用 crontab,那么添加-l到 shebang 就可以了。如果您可能以其他方式使用该脚本,请考虑在 crontab 本身中修复环境问题:

0 * * * * bash -l hourly.sh
Run Code Online (Sandbox Code Playgroud)