簡體   English   中英

如何在 Bash 中的一行中打印 for 循環的輸出

[英]How to print output of a for loop in a single line in Bash

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM