Ton*_*ony 6 linux bash for-loop
我有一个类似于以下的循环:
for time in ${seconds_list}; do
echo "scale=2; (${cur_time}-${time})/3600" | bc
done
Run Code Online (Sandbox Code Playgroud)
当然,我可以将结果"回显"到一个文件并完成它,但我认为更优雅的方法是将所有for循环结果存储在一个变量中,我可以在以后使用.包含所有结果的变量必须如下所示:
var='30.25
16.15
64.40
29.80'
Run Code Online (Sandbox Code Playgroud)
有一种简单的方法可以实现这一目标吗?
Ste*_*nio 13
这很简单,你可以将整个循环的输出重定向到一个变量(如果你只想使用一个变量):
VARIABLE=$(for time in ...; do ...; done)
Run Code Online (Sandbox Code Playgroud)
你的例子:
var=$(for time in ${seconds_list}; do
echo "scale=2; (${cur_time}-${time})/3600" | bc
done)
Run Code Online (Sandbox Code Playgroud)
只需将代码括在$()中即可.
最好使用BASH数组来存储结果:
results=()
for time in ${seconds_list}; do
results+=($(bc -l <<< "scale=2; ($cur_time-$time)/3600"))
done
# print the results:
printf "%s\n" "${results[@]}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9879 次 |
| 最近记录: |