Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.bash.bug > #15551

Re: Feature Request: Custom delimeter for single quotes

Path csiph.com!3.us.feeder.erje.net!feeder.erje.net!news.linkpendium.com!news.linkpendium.com!panix!usenet.stanford.edu!not-for-mail
From Ilkka Virta <itvirta@iki.fi>
Newsgroups gnu.bash.bug
Subject Re: Feature Request: Custom delimeter for single quotes
Date Fri, 1 Nov 2019 10:37:50 +0200
Lines 76
Approved bug-bash@gnu.org
Message-ID <mailman.171.1572597484.13325.bug-bash@gnu.org> (permalink)
References <CAOnw=2J6fse6U=6zofMW7pORp0yTere_DYYSKGS6hf5xK2PuQA@mail.gmail.com> <13ecc4db-2b5e-95dd-2445-78191b9c01dd@iki.fi>
NNTP-Posting-Host lists.gnu.org
Mime-Version 1.0
Content-Type text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding quoted-printable
X-Trace usenet.stanford.edu 1572597484 30530 209.51.188.17 (1 Nov 2019 08:38:04 GMT)
X-Complaints-To action@cs.stanford.edu
To Patrick Blesi <patrick@ble.si>, bug-bash@gnu.org
Envelope-to bug-bash@gnu.org
User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:60.0) Gecko/20100101 Thunderbird/60.9.0
In-Reply-To <CAOnw=2J6fse6U=6zofMW7pORp0yTere_DYYSKGS6hf5xK2PuQA@mail.gmail.com>
Content-Language en-US
X-SASI-RCODE 200
DKIM-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=iki.fi; h=subject:to:references:from:message-id:date:mime-version:in-reply-to:content-type:content-transfer-encoding; s=smtp; bh=9x1+RTDgDArsZ5g8zNEYGp/GtjrMrWYl62+b/YJNVaQ=; b=x/rmgByDM/DnxCu+a5k8yNSDyizyDGNPZ6Aw/kN6bYNR5wJYgMakEf7/bnid6cVdmdwiRU30Dgh/aW1paWLN9MTSDErj27C3b68UZ1e10oAlqZ6t0pfubB0NfToZXGEd7XccJg4nf3hqOJTOZabA9u9mxU6L14mCOEOQSjFCKuFeYKoPf4Pm1gth0Xmqw9GyCfeXzXFhp7YTr0NppqQIPm3+Lj6TfQORK6G5r7MtrnB7IsDo19TDNb/2LVKp7MlzTUj/uRYLYrgUl0ewgnpms5Y87/SeX48CYU0FQK5hOfcz4A7OCsNflhMwpySIXaf67k71cVluU0K5dDqq4iEmGA==
X-detected-operating-system by eggs.gnu.org: FreeBSD 8.x [fuzzy]
X-Received-From 157.24.2.213
X-BeenThere bug-bash@gnu.org
X-Mailman-Version 2.1.23
Precedence list
List-Id Bug reports for the GNU Bourne Again SHell <bug-bash.gnu.org>
List-Unsubscribe <https://lists.gnu.org/mailman/options/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=unsubscribe>
List-Archive <https://lists.gnu.org/archive/html/bug-bash>
List-Post <mailto:bug-bash@gnu.org>
List-Help <mailto:bug-bash-request@gnu.org?subject=help>
List-Subscribe <https://lists.gnu.org/mailman/listinfo/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=subscribe>
X-Mailman-Original-Message-ID <13ecc4db-2b5e-95dd-2445-78191b9c01dd@iki.fi>
X-Mailman-Original-References <CAOnw=2J6fse6U=6zofMW7pORp0yTere_DYYSKGS6hf5xK2PuQA@mail.gmail.com>
Xref csiph.com gnu.bash.bug:15551

Show key headers only | View raw


On 1.11. 06:54, Patrick Blesi wrote:
> I'm looking for a hybrid between single quotes and a here doc or here
> string.
> 
> The main use case is for accepting arbitrary user-specified text. 

Do your users enter the text by directly editing the script?
Would it make more sense to use e.g. 'read' to read the input directly 
from the user?

input=""
nl='
'
echo "Enter text, end with ^D:"
while IFS= read -r line; do
     input="$input$line$nl"
done

printf "You entered:\n---\n%s---\n" "$input"


or to just have the text in a separate file (not the script) and read it 
from there?

input=$(< inputfile)


That way, the text appears in a variable, and you don't need to care 
about quotes inside it.


(You could also read from stdin with just  input=$(cat)  instead of the 
while read loop but that feels a bit odd to me for some reason.)

> I would
> like to wrap this text in single quotes so as to prevent any variable
> expansion or interpretation of the text of any kind. Additionally, I would
> like to allow the users to include single quotes in their text without
> requiring that they escape these quotes.
> 
> Something akin to the following would alleviate the need to communicate
> that users must escape single quotes, but also provide the same literal
> string behavior of single quotes.
> 
> presuming the arbitrarily substituted text is:
> 
> echo 'this command is specified by the user'
> 
> Then a syntax for this single quote heredoc behavior could be like:
> 
> $ sh -c <<^MAGIC_WORD echo 'this command is specified by the user'
> MAGIC_WORD
> 
> Everything within the MAGIC_WORD declarations would not have command
> substitution, variable expansion, etc, but would be treated as if it were
> wrapped in single quotes with the exception that single quotes between the
> MAGIC_WORDs need not be escaped.
> 
> Pardon my naïveté, does any such feature exist or are there good ways to
> accomplish this? If not, is this something that could feasibly be
> implemented? Would it be desirable?
> 
> Thanks,
> 
> Patrick
> 


-- 
Ilkka Virta / itvirta@iki.fi

Back to gnu.bash.bug | Previous | Next | Find similar | Unroll thread


Thread

Re: Feature Request: Custom delimeter for single quotes Ilkka Virta <itvirta@iki.fi> - 2019-11-01 10:37 +0200

csiph-web