本文介绍了我如何才能正常地在GIT操作的sh中随机运行for loop?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何才能正常在git操作的sh中随机运行for loop?

这里有一个每日提交的GitHub存储库。

对于GitHub操作

下面的YML文件存在。

name: planting-grass

on:
   schedule:
     - cron: '0 0 * * *'

jobs:
  task:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Set current date
        id: date
        run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
      - name: Execute commands
        run: sh ./task.sh ${{ steps.date.outputs.date }}
      - name: Commit files
        run: |
          git config --global user.name "$(git --no-pager log --format=format:'%an' -n 1)"
          git config --global user.email "$(git --no-pager log --format=format:'%ae' -n 1)"
          git add date.txt
          git commit -m ${{ steps.date.outputs.date }}
      - name: Push changes
        uses: ad-m/github-push-action@master
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          branch: ${{ github.ref }}

该YML运行task.sh。Task.sh如下所示:

#!/bin/bash

echo "DATE: $1" >> date.txt

一切正常。

但是,在data.txt中,每天累计一行。

我要在data.txt中累计介于1和100之间的行。

我可以在哪里编辑以使用上述功能?

然后我尝试了以下操作:

#!/bin/bash

range=100
number=$((RANDOM % range))

while [ "$i" -le "$number" ]; do
    echo "DATE: $1" >> date.txt
done
#!/bin/bash

range=100
number=$((RANDOM % range))
i=0

while (( i <= number )); do
    echo "DATE: ${i}" >> date.txt
    i=$((i+1))
done
#!/bin/bash

range=100
number=$((RANDOM % range))

for i in $(seq 0 $number); do
    echo "DATE: ${i}" >> date.txt
done

但全部失败。

它输出以下错误消息:

./task.sh: 7: [: Illegal number:
./task.sh: 7: [[: not found
./task.sh: 7: i: not found

我想知道如何才能运行普通的随机for循环。

致以最良好的祝愿!

编辑)

#!/bin/bash

range=100
number=$((RANDOM % range))
i=0

while (( i <= number )); do
     echo "DATE: ${i}" >> date.txt
     i=$((i+1))
done

上面的代码运行得很好,但它只运行一次。与想要在1到100之间随机运行echo "DATE: ${i}" >> date.txt不同,它始终只执行一次。我们如何解决此问题?

推荐答案

  • 您可以将run: sh ./task.sh更改为run: bash ./task.sh以使用bash运行脚本,而不是sh

  • 如果您的脚本是可执行的(chmod a+x task.sh并提交文件),并且您拥有正确的Shebang(#!/bin/bash),则您也可以执行run: ./task.sh

  • 您的cron时间表(0 0 * * *)设置为每天运行。如果您想更频繁地运行,您可以更改它。例如,0,30 * * * *将每半小时运行一次(日期将全天相同,除非包括时间,例如date + '%Y-%m%d_%H:%M:%S')。

这篇关于我如何才能正常地在GIT操作的sh中随机运行for loop?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-27 10:48