shell:for循环返回语法错误

时间:2014-10-23 19:47:18

标签: shell

请我有一个代码,它会返回一个我不知道的错误。

#!/bin/bash
YESTERDAY="$(date -d '1 day ago' '+%Y%m%d')"

LOGDIR=/tm/

for ssp in {1,2,3,4,5,6,7,8};do

    for hour in {00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23};do
    logFilee="$LOGDIR"log_$YESTERDAY"$hour"_s_$ssp.txt
    logFile2e="$LOGDIR"log_$YESTERDAY"$hour"_s_dr_$ssp.txt
    echo $logFilee
    echo $logFile2e



    done;
done;

输出是:

/tmp/log_20141022{00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23}_s_{1,2,3,4,5,6,7,8}.txt
/tmp/log_20141022{00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23}_s_dr_{1,2,3,4,5,6,7,8}.txt

此输出不正确!

谢谢

1 个答案:

答案 0 :(得分:0)

将它写成:

会更简单
for ssp in {1..8}; do
    for hour in {00..23}; do
        ...
    done
done

如果您没有bash 4,那么您可以使用:

for ssp in {1..8}; do
    for hour in $(seq -w 0 23); do
        ...
    done
done