help-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Printing with and without newlines


From: irenezerafa
Subject: Printing with and without newlines
Date: Sat, 13 Nov 2021 18:05:26 +0000

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐

On Saturday, November 13th, 2021 at 5:35 PM, Dennis Williamson 
<dennistwilliamson@gmail.com> wrote:

> On Sat, Nov 13, 2021 at 11:11 AM irenezerafa via help-bash@gnu.org wrote:
>
> > I would like to have an option on whether to print function arguments with
> >
> > a newline or
> >
> > keep them on the same line.
> >
> > Currently I am using tho following, but is there a more straightforward
> >
> > way to do this?
> >
> > This starts printing from argument nl+1 onwards.
> >
> > case $nwline in
> >
> > 1.  printf '%s\n' "${@:nl+1}" ;;
> >
> >     *) printf '%s' "${@:nl+1}" ;;
> >
> >     esac
>
> line_end=$'\n'
>
> printf '%s%s' foo "$line_end" # outputs "foo" followed by a newline
>
> line_end=''
>
> printf '%s%s' foo "$line_end" # outputs "foo" without a newline
>
> Other line endings could be assigned, for example ' ' (space), $'\r' or
>
> even $'\r\n'.

Had started working on a similar strategy using arrays.  Your idea looks neater.
I did not think one can use \n outside the format string though.

local fsa= "\n" fsb= ""
local aggra=() aggrb=()
(( nl > 0 )) && aggra=( "${ctp}${@:1:nl}${rst}" )
(( nl+1 <= $# )) && aggrb=( "${@:nl+1}" )

(IFS=$fsa; echo "${aggra[@]}")



reply via email to

[Prev in Thread] Current Thread [Next in Thread]