[Top][All Lists]

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

Adding option to select file types

From: lisa-asket
Subject: Adding option to select file types
Date: Tue, 6 Jul 2021 03:11:49 +0200 (CEST)

You are right, I got the -e execution fail.

I forgot about the quoted here-document, thankyou.


From: Lawrence Velázquez <>
Subject: Re: Adding option to select file types
Date: 06/07/2021 02:44:57 Europe/Paris

On Mon, Jul 5, 2021, at 7:47 PM, wrote:
> Why does printf complain with the following help displays?

It would be helpful to see these complaint(s).

>         frmt="%s"
>         printf $frmt "Print text surrounding line numbers from named files.\n"
>         printf $frmt "-d DIR\n--directory=DIR\n"
>         printf $frmt "    Directory.\n"
>         printf $frmt "-e TYPE\n--extension=TYPE\n"
>         printf $frmt "    Extension defining file type.  Multiple file are\n"
>         printf $frmt "    separated by a comma (e.g. `-e org,texi`).\n"

I am going to guess that the error is coming from this command.
Command substitution -- including the legacy `...` form -- is
performed inside double quotes.

bash-5.1$ printf '%s\n' "foo `date` bar"
foo Mon Jul 5 20:27:46 EDT 2021 bar

Your shell tries to execute the command '-e org,texi', but you
presumably do not have a utility called '-e', so the execution
fails. This unwanted command substitution would not happen if
you used single quotes instead of double quotes.

>         printf $frmt "-p NUM\n--startline=NUM.\n"
>         printf $frmt "    Start line number.\n"
>         printf $frmt "-q NUM\n--stopline=NUM.\n"
>         printf $frmt "    Stop line number.\n"

I'm not going to address the ineffectual '\n's in the arguments
because this whole approach seems needlessly involved. You might
instead consider using a quoted here-document, which does not have
issues with expansions, substitutions, or apostrophes.

cat <<'EOF'
Print text surrounding line numbers from named files.
-d DIR
Extension defining file type. Multiple file are
separated by a comma (e.g. `-e org,texi`).
-p NUM
Start line number.
-q NUM
Stop line number.


reply via email to

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