arrays - 如何在 Bash 的单行中打印 for 循环的输出
问题描述
echo -n "input: "
while read line
do
array=("${array[@]}" $line)
done
len=${#array[@]}
echo -n "Output:"
for (( n=0; n<=len; n++ ))
do
echo "${array[n]}" | rev
done
我希望反向输出在一行中。
解决方案
你为什么不使用反向循环?
sep="" # no separator before first entry
for ((n=len; n>=0; n--))
do
printf "%s%s" "$sep" "${array[n]}"
sep=" "
done
printf '\n'
通常更喜欢printf
,echo -n
尽管两者都可以在这里工作。
或者,如果您只想逐个字符地反转输出;
echo "${array[@]}" | rev
但是那你为什么需要一个数组呢?
read -r -p 'input: '
echo "$REPLY" | rev
推荐阅读
- python - Pyzipcode3没有找到可压缩的
- swift - Firebase RemoteConfigSettings 不反映 minimumFetchInterval 更改
- wordpress - wordpress 网站中的混合内容错误消息
- php - 如何在 PHP 网站上使用 Weka 进行情绪分析?
- xamarin - Xamarin 坚持主题
- javascript - 将数据从主页传递到模式内的 php 查询
- python - 如何使用 Rasterio 更改栅格的 dtype
- python - Windows 系统中的 Python os.pipe 位置
- python - 合并python数据框和嵌套列表
- c - 变量返回还是直接返回?