【发布时间】:2017-04-01 05:58:43
【问题描述】:
我有一个用这样的脚本编写的 for 循环:
for((i=0;i<${#hours[@]})); do
dates=("$(last | egrep -v "reboot|wtmp|^$" | sort | tr -s " " | sed "$i q;d" | cut -f5-7 -d' ')")
done
如果我只是在终端中执行分配给dates 的命令,将$i(在 sed 命令中)替换为数字(0,1,2...),它会返回我想要的结果,例如Nov 15 23:15。
但是,当在 for 循环内时,我似乎遇到了 sed 命令不递增 $i 的问题。我做错了什么?
【问题讨论】:
-
您是否尝试为循环的每次迭代附加到数组?
-
我建议将
i=0替换为i=1。 -
@TomFenech 是的,我正在尝试在每次迭代中附加一个日期。
-
@Cyrus 这并不能解决问题,尽管我认为我需要从 1 开始。
-
+=应该在循环中使用而不是=来附加每个项目。也就是说,您最好向我们展示您的输入和所需输出的样本,因为可能有一种更简单的方法来获得您想要的结果
标签: bash shell for-loop sed increment