我有以下循环:
for k in "${keys[@]}"; do
if output=$(curl -s -f
--max-time 5
"https://api.site/info?key=$k"); then
printf "nn%sn$(json_pp<<<"$output")nn" "$k"
fi
done
我只想在循环开始时打印一次 echo 命令。
很明显,此选项将多次打印"信息端点"行,而不是一个:
for k in "${keys[@]}"; do
echo 'info endpoint:'
if output=$(curl -s -f
--max-time 5
"https://api.site/info?key=$k"); then
printf "nn%sn$(json_pp<<<"$output")nn" "$k"
fi
done
请给我正确的方向,谢谢。
简单地把它放在循环之外:
echo 'info endpoint:'
for k in "${keys[@]}"; do
if output=$(curl -s -f
--max-time 5
"https://api.site/info?key=$k"); then
printf "nn%sn$(json_pp<<<"$output")nn" "$k"
fi
done
如果它位于内部对您很重要,则可以添加一个 if 语句以仅在第一次运行时有条件地调用它(基于键或新变量(