bug-bash
[Top][All Lists]
Advanced

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

command substition bug 2


From: parasite parasite
Subject: command substition bug 2
Date: Fri, 2 Dec 2016 12:26:57 +0100

GNU bash, version 4.3.46(1)-release (x86_64-unknown-linux-gnu)
GCC: (GNU) 6.1.1
On archlinux 4.4.27-1-lts
 
Hello, today i tried something simple but it leads to what seems to be a bug.
 
$ var="$(for ((i=0;i<$#;i++));do echo line;done)"
leads to: "unexpected EOF while looking for matching `)'
 
I think it's because bash interprets "^#" as "#" which means that what follow is commented.
 
It works, when $# is replaced by any number:
$ var="$(for ((i=0;i<5;i++));do echo line;done)"
 
It works with backticks:
$ var=`for ((i=0;i<$#;i++));do echo line;done`
 
This works also:
$ var="$(bash -c 'for ((i=0;i<$#;i++));do echo line; done')"
 
As well than this one:
$ var="$(for ((i=0;i<${#};i++));do echo line;done)"
 
Than this one:
$ var="$(for ((i=0;i<"$#";i++));do echo line;done)"
 
 
IRC #bash on freenode
 
02/12/2016 11:13:19 <Soliton> then i guess the math context is not parsed correctly. that seems odd.
 
02/12/2016 11:27:57 <mvdw> If you reassign $# to a different variable beforehand it works as well.
 
02/12/2016 11:36:42 <Soliton> looks to me like a parser failure that reads it as a comment start.
<Soliton> doesn't matter what you write after it. it always misses the closing parenthesis.
 
parasite.

reply via email to

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