数组遍历
Shell 数组定义:数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。与大部分编程语言类似,数组元素的下标由 0 开始。
Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下
array_name=(value1 value2 ... valuen)
遍历(For循环法):
for var in ${arr[@]};
do
echo $var
done
例子:
#遍历数组
dates=(2021-01-31 2021-02-28 2021-03-31 2021-04-30 2021-05-31 2021-06-30 2021-07-31 2021-08-31 2021-09-30 2021-10-31 2021-11-30 2021-12-31 2022-01-31 2022-02-28 2022-03-31 2022-04-30 2022-05-31 2022-06-30 2022-07-31)
for dt in ${dates[@]}
do
#执行你需要的操作
echo -e "${dt}\n"
done
问题:./test.sh: 3: ./test.sh: Syntax error: “(” unexpected
原因:兼容性问题,因为Linux 将sh默认执行了dash ,而不是bash
我的解决办法:使用 bash xxxx.sh
Other:
sudo dpkg-reconfigure dash
在弹出的窗口选择no
然后再重新执行 sudo sh test.sh
就可以了
日期循环
开始日期和结束日期可手动传进去
#!/bin/bash
start_date=$1
end_date=$2
i=$start_date
while [[ $i < `date -d "+1 day $end_date" +%Y-%m-%d` ]]
do
echo $i "---开始"
bash / # 循环操作
echo $i "---结束"
i=`date -d "+1 day $i" +%Y-%m-%d`
done
遍历文件内容操作
#!/bin/bash
#文件内存存放
dates=$(cat $(pwd)/dates.txt)
#循环
for i in $dates
do
#操作
echo $i
done
版权声明:本文为weixin_42804692原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。