help-bash
[Top][All Lists]
Advanced

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

Re: Printing with and without newlines


From: Alex fxmbsw7 Ratchev
Subject: Re: Printing with and without newlines
Date: Sat, 13 Nov 2021 19:08:51 +0100

you cant use \n in data args excepts %b but if you pass ( an optional )
literal newline it of course passes it over

On Sat, Nov 13, 2021, 19:05 irenezerafa <irenezerafa@protonmail.com> wrote:

> ‐‐‐‐‐‐‐ 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]