2016-11-17 69 views
3

我有一个for循环写在脚本像这样:传递一个变量内的sed 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的问题。我究竟做错了什么?

+0

您是否尝试为循环的每次迭代追加到数组? –

+0

我建议用'i = 1'替换'i = 0'。 – Cyrus

+0

@TomFenech是的,我试图在每个迭代附加一个日期。 –

回答

-1

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

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