我正在玩i/o shell重定向.我试过的命令(在bash中):
ls -al *.xyz 2>&1 1> files.lst
Run Code Online (Sandbox Code Playgroud)
和
ls -al *.xyz 1> files.lst 2>&1
Run Code Online (Sandbox Code Playgroud)
*.xyz当前文件夹中没有任何文件.
这些命令给了我不同的结果.第一个命令ls: *.xyz: No such file or directory在屏幕上显示错误消息.但第二个将此错误消息打印到该文件.为什么第一个命令无法将错误的输出写入文件?
我在crontab中有以下条目:
0 5 * * * /bin/bash -l -c 'export RAILS_ENV=my_env; cd /my_folder; ./script/my_script.rb 2>&1 > ./log/my_log.log'
Run Code Online (Sandbox Code Playgroud)
这样做的结果是,我收到的输出./script/my_script.rb在./log/my_log.log.这种行为是期望的.奇怪的是,我也在本地邮件中收到输出.我想知道如何通过邮件捕获我的脚本的输出.由于我将输出重定向到日志文件,我希望我的cron作业没有输出,因此当cron作业运行时我不会收到任何邮件.任何人都可以了解邮件如何获得输出./script/my_script.rb?