将变量传递给sed内部for循环

时间:2016-11-17 15:45:51

标签: bash shell for-loop sed increment

我有一个像这样的脚本编写的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的命令,用一个数字(0,1,2 ...)替换$i(在sed命令中),它会准确地返回给我我想要的是什么,例如Nov 15 23:15

但是,当在for循环内部时,我似乎遇到了sed命令没有递增$i的问题。我做错了什么?

1 个答案:

答案 0 :(得分:-1)

您的问题是您永远不会更改i。您应该在for声明的第三部分更新它:

for((i=0;i<${#hours[@]};++i)); do
#                       ^^^ here
相关问题