0

我正在编写一个脚本,每周一次将 df -g 的输出写入文本文件。这是我的脚本,我认为它应该可以工作,但是每当我尝试通过键入 ./check_space.sh 以 root 身份运行它时,我都会收到以下错误:./check_space.sh: line 13: syntax error near unexpected token done' ./check_space.sh: line 13:done'

#!/bin/bash
#this script will run every week to grab a df -g and output it to a file.
#times to sleep
        #10080 = 1 week

#date command
NOW=$(date +"%m.%d.%y")

while true, do
df -g > /sds/app/force/custom/dumplogs/harddisk/$NOW.log

#sleep 10080
done

最初我想在屏幕会话中运行这个脚本,这就是为什么 Sleep 在那里,但我很快决定最好每周运行一次 cron 。

4

1 回答 1

1

问题是由 . 后面的逗号引起的true。正确的语法是使用分号:while true; do. 但是您首先不需要 while 循环。类似以下内容就足够了:

#!/bin/bash

NOW=$(date +"%m.%d.%y")
df -g > /sds/app/force/custom/dumplogs/harddisk/$NOW.log

我还建议您使用%Y-%m-%d日期格式,以便更容易按日期排序。

于 2016-09-02T02:48:12.670 回答