Date: Fri, 16 Oct 2020 11:34:08 +0200 From: Ralf Mardorf <ralf-mardorf@riseup.net> To: freebsd-questions@freebsd.org Subject: Re: sh scripting question Message-ID: <20201016113408.16d58d68@archlinux> In-Reply-To: <DB8PR06MB64427D88E17F02711EE657A3F6030@DB8PR06MB6442.eurprd06.prod.outlook.com> References: <d50ba2c9-617f-6842-ef89-f5933be8f8b3@hotmail.com> <DB8PR06MB64427D88E17F02711EE657A3F6030@DB8PR06MB6442.eurprd06.prod.outlook.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 16 Oct 2020 13:42:17 +0530, Manish Jain wrote: >-------- Forwarded Message -------- >Subject: Re: sh scripting question >Date: Fri, 16 Oct 2020 13:39:06 +0530 >From: Manish Jain <bourne.identity@hotmail.com> >To: Ralf Mardorf <ralf-mardorf@riseup.net> > >On 2020-10-16 10:02, Ralf Mardorf wrote: >> On Thu, 15 Oct 2020 23:14:13 -0400, Kurt Hackenberg wrote: >>> On 2020-10-15 23:05, Bob Proulx wrote: >>> >>>> Oh you are tormenting us now. :-) There are some subtle issues >>>> here. >>> >>> >>> Maybe a shell is the wrong tool. >> >> Exactly! Scripts are useful to handle tasks, such as dealing with >> reasonable file names. A script should work around reasonable tricky >> file names, but at some point bothering with really freakish file >> names isn't worth the effort. Actually file names should be >> compatible with shell, if they are intended to be used with shell >> scripts. To some extent we could use shell scripts, to write little >> programs, that probably better should be written in a programming >> language. At some extent a programming language is required, a shell >> script can't do the job at all or at best it could do the job, but >> not with reasonable effort. > > >I would strongly disagree with that. If a problem can be solved with a >shell script - and Robert Huff's problem is easily solvable with a >simple Bourne shell script, then a shell script must be what is used >to solve the problem. We do not disagree here. The OP's "problem" isn't a big problem for a shell script, assuming we are talking about file names such as foo bar 10-inch.txt and not foo "bar" \ 10".txt Names read from a file containing a list of file names is one thing. The next step is how the script should proceed using the file names. Handling even the most freakish string is doable, but depending on what should be done next with this string, it's not necessarily pleasant, especially not when the content of the string conflicts with shell conventions. Imagine a file named - or -h or --help etc., then add the file name behind a command. Yes, you could use a workaround, such as adding a path. [rocketmouse@archlinux tmp]$ cat --help | head -1 Usage: cat [OPTION]... [FILE]... [rocketmouse@archlinux tmp]$ cat ./--help | head -1 test However, you easily could end up with a script containing more lines that workaround offended conventions, than containing lines for what actually should be done.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20201016113408.16d58d68>