Cronjob输出避免评估回声

问题描述

我想运行cronjob来提交并将一些更改推送到txt文件。我创建了这个小bash脚本,

eval "$(ssh-agent -s)"
ssh-add -k ~/.ssh/git_key
number=$(eval "shuf -i 10-20 -n 1")
echo $number
for i in $(eval echo "{1..$number}")
        do
                echo "a" >> file.txt
                git commit -am "another add"
        done
git push

如果我按以下方式运行,它将运行得很好

./fakeGit.sh

但是,一旦我将其放入cronjob中(使用crontab -e),就像这样:

48 17 * * * cd ~/GreenIsCool && ./fakeGit.sh > log.txt 2>&1

它只提交一次,这是log.txt的输出

Agent pid 11687
Identity added: /home/----/.ssh/git_key (/home/----/.ssh/git_key)
18
[master 5dcc943] another add
 1 file changed,1 insertion(+)
To github.com:------.git
   4362432..5dcc943  master -> master

感觉像是循环工作不正常,我感觉像是因为回声可能重定向到了错误的位置(因为cronjob输出到log.txt),但是我找不到避免这种情况的方法。我将如何更正脚本,使其与> log.txt一起使用?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)