linux - Crontab 不通过管道传送到文件 (LINUX)

标签 linux pipe cron

cronjob 不会将另一个脚本的输出通过管道传输到文件,但我可以执行它(不是同一用户,两个文件的 chmod 都设置为 777)。

#! /bin/sh

. /disk2/etc/env_cron
SUBJ="Test"
TEXT=/disk2/home/user/mailtxt
ADDR="mail@domain.com"

  echo -e `date` > $TEXT
  echo -e "1\n\n\nq" | menu >> $TEXT
  mutt -s "$SUBJ" -i $TEXT -- $ADDR < /dev/null

我希望它将“echo -e 1\n\n\nq”通过管道传输到脚本菜单,然后在文件中获取输出。菜单的输出只是文本。

最佳答案

问题(如建议的那样)是 cronjob 的路径中没有脚本“菜单”。将脚本中的“菜单”更改为绝对路径修复了它。

echo -e "1\n\n\nq" | /folder/folder/menu >> $TEXT

编辑:如果 cronjob 由其他用户运行,请不要忘记在文本文件上设置正确的权限。

关于linux - Crontab 不通过管道传送到文件 (LINUX),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28743835/

相关文章:

c++ - Makefile 报告 `func[abi:cxx11]()' 的多个定义

linux - 为什么 sort f >f 会删除所有内容?

linux - Linux 上 Matlab 中的 24 位声音捕获

android - 使用任意流作为 MediaPlayer 的源

linux - 如何跨管道处理数据?

cron - 单个 Cron 实例/互斥体

java - Google App Engine - 根据用户输入时间运行作业

linux - 并行高效地运行多个作业

python - 可以在执行 python 脚本的命令中读取返回值

linux - 每 105 分钟运行一次 cron