Re: extfs shell scripts [was: Re: Call for development freeze]



Leonard den Ottolander wrote:
Hello Roland,

On Wed, 2004-11-10 at 07:43, Roland Illig wrote:

Here are some more issues regarding the VFS shell scripts.


--- vfs/extfs/audio.in	18 Oct 2004 02:20:09 -0000	1.8
-	A=`echo $A | sed -e 's/\.//' -e 's/^\(.\)$/0\1/'`
+	A=`echo "$A" | sed -e 's/\.//' -e 's/^\(.\)$/0\1/'`


Unnecessary as the value of $A is only parsed, not passed to a shell,
and not even interpreted by echo.

I always provide a single string to echo(1). $A could be splitted into many words and lose some whitespace. "$A" passes the value of $A literally to the command, $A interprets it.

-    if [ "$2" == "CDDB" ]; then
+    if [ x"$2" = x"CDDB" ]; then

More correct wrt old versions of bash. Ok.

This has nothing to do with bash. Let $2 be "-f". Then the [(1) command line looks like:
[ -f == CDDB ]

The "-f" is interpreted as the command to look for the existence of a regular file. Putting an "x" (or almost every other character) in front of the "-f" makes the "==" the command.


Index: vfs/extfs/trpm
-name=`sed 's/.*\///;s/\.trpm$//' "$2"`
+name=`echo "$2" | sed 's/.*\///;s/\.trpm$//'`

Please explain. What's the use of putting an echo "$2" in front? Again,
quotes are not needed here. And shouldn't this command include an -e in
this case?

The sed command is most likely supposed to transform the value of $2, not the file named by $2.

The "-e" option is not necessary when passing exactly one command to sed.

For the rest: Quoting of temporary file names is unnecessary as they
have no spaces in their names, but technically correct, so ok.

What about MC_TMPDIR="/Users/Leonard den Ottolander/temp"? Currently most scripts will break, but I want them not to break. What if MC_TMPDIR="/tmp/foo /*"?

rm -rf $MC_TMPDIR

Roland



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