在 for 循环中将变量传递给 sed
Passing a variable to sed inside for loop
我有一个用脚本编写的 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 命令中),它 returns 我正是我想要的,例如 Nov 15 23:15
.
然而,当在 for
循环中时,我似乎遇到了 sed 命令不递增 $i
的问题。我做错了什么?
你的问题是你从不改变i
。您可能应该在 for
语句的第三部分更新它:
for((i=0;i<${#hours[@]};++i)); do
# ^^^ here
我有一个用脚本编写的 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 命令中),它 returns 我正是我想要的,例如 Nov 15 23:15
.
然而,当在 for
循环中时,我似乎遇到了 sed 命令不递增 $i
的问题。我做错了什么?
你的问题是你从不改变i
。您可能应该在 for
语句的第三部分更新它:
for((i=0;i<${#hours[@]};++i)); do
# ^^^ here