| 
									
										
										
										
											2009-01-12 13:36:28 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | # works right | 
					
						
							|  |  |  | echo ab$(echo mnop)yz | 
					
						
							|  |  |  | # works right | 
					
						
							|  |  |  | echo ab$(echo mnop | 
					
						
							|  |  |  | )yz | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # works right | 
					
						
							|  |  |  | echo $(echo ab | 
					
						
							|  |  |  |    ) | 
					
						
							|  |  |  | # works right | 
					
						
							|  |  |  | echo $( | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | echo $() | 
					
						
							|  |  |  | echo ab$()cd | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $(case a in (a) echo sh_352.26ax; esac ) | 
					
						
							|  |  |  | echo $(case a in (a) echo sh_352.26ay; esac) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $((echo sh_352.25a);(echo sh_352.25b)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $(echo sh_352.27 ')' ")" \) | 
					
						
							|  |  |  | 	# ) comment | 
					
						
							|  |  |  | 	) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $( | 
					
						
							|  |  |  | echo abc # a comment with ) | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $( | 
					
						
							|  |  |  | cat <<eof | 
					
						
							|  |  |  | here doc with ) | 
					
						
							|  |  |  | eof | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $( | 
					
						
							|  |  |  | echo ')' | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | unset x | 
					
						
							|  |  |  | x=$(cat <<"EOF" | 
					
						
							|  |  |  | bad' syntax | 
					
						
							|  |  |  | EOF | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | echo "$x" | 
					
						
							|  |  |  | unset x | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $(for f in \); do echo a; done ) | 
					
						
							|  |  |  | echo $(case a in a) echo sh_352.26a; esac ) | 
					
						
							|  |  |  | echo $(case a in a) echo sh_352.26a; esac) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $(case a in | 
					
						
							|  |  |  |             (a) echo sh_352.26 | 
					
						
							|  |  |  |                ;; | 
					
						
							|  |  |  |                  esac | 
					
						
							|  |  |  |           ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $(case a in | 
					
						
							|  |  |  |             a) echo sh_352.26 | 
					
						
							|  |  |  |                ;; | 
					
						
							|  |  |  |                  esac | 
					
						
							|  |  |  |           ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $(case a in | 
					
						
							|  |  |  |             a) echo sh_352.26 | 
					
						
							|  |  |  |                ;; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 			 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |                  esac | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $(( 4<(2+3) ? 1 : 32)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $(cat << end | 
					
						
							|  |  |  | sh_352.28 ) | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $(cat <<- end   | 
					
						
							|  |  |  | sh_352.28 ) | 
					
						
							|  |  |  | 	end | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | k=$(case x in x) echo k;; esac) | 
					
						
							|  |  |  | echo $k | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | x=$( | 
					
						
							|  |  |  |     case $(ls) in | 
					
						
							|  |  |  | 	example) echo foobix;; | 
					
						
							|  |  |  |     esac | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $( echo ab\ | 
					
						
							|  |  |  | cd) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo `echo ab | 
					
						
							|  |  |  | cd` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo `echo ab #xyz | 
					
						
							|  |  |  | cd` | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo "$(echo abcde) | 
					
						
							|  |  |  | " | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | recho "$(echo abcde) | 
					
						
							|  |  |  |   " | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $(echo abcde)\ | 
					
						
							|  |  |  | foo | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | recho $(echo abcde)\ | 
					
						
							|  |  |  |    foo | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | recho "wx$(echo abcde)yz" | 
					
						
							|  |  |  | recho "$(echo abcde)" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $(cat <<eof | 
					
						
							|  |  |  | ' | 
					
						
							|  |  |  | eof | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo after 1 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $(cat <<\eof | 
					
						
							|  |  |  | ' | 
					
						
							|  |  |  | eof | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo after 2 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo "$(cat <<\eof | 
					
						
							|  |  |  | ' | 
					
						
							|  |  |  | eof | 
					
						
							|  |  |  | )" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo after 3 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo "$(cat <<\eof | 
					
						
							|  |  |  | ` | 
					
						
							|  |  |  | eof | 
					
						
							|  |  |  | )" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo after 4 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $( | 
					
						
							|  |  |  | cat << ')' | 
					
						
							|  |  |  | hello | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo after 5 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $(cat <<'eof' | 
					
						
							|  |  |  | ' | 
					
						
							|  |  |  | eof | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo after 6 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $( | 
					
						
							|  |  |  |   case x in  x) echo x;; esac | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $( | 
					
						
							|  |  |  |   case x in (x) echo x;; esac | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $( | 
					
						
							|  |  |  |   echo 'quoted )' | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $( | 
					
						
							|  |  |  |   echo comment # with ) | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $( | 
					
						
							|  |  |  | cat <<\eof | 
					
						
							|  |  |  |   here-doc with ) | 
					
						
							|  |  |  | eof | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $( | 
					
						
							|  |  |  | cat <<\) | 
					
						
							|  |  |  | 	here-doc terminated with a parenthesis | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | echo $( | 
					
						
							|  |  |  | cat <<\eof | 
					
						
							|  |  |  | 	'   # or a single back- or doublequote | 
					
						
							|  |  |  | eof | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ${THIS_SH} ./comsub-posix1.sub | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-22 19:11:26 -05:00
										 |  |  | ${THIS_SH} ./comsub-posix2.sub | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ${THIS_SH} ./comsub-posix3.sub | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-01-12 13:36:28 +00:00
										 |  |  | # produced a parse error through bash-4.0-beta2 | 
					
						
							|  |  |  | : $(echo foo)" | 
					
						
							|  |  |  | " | 
					
						
							| 
									
										
										
										
											2011-11-22 19:11:26 -05:00
										 |  |  | # produced a parse error through bash-4.1 | 
					
						
							|  |  |  | unset x | 
					
						
							|  |  |  | x=$( | 
					
						
							|  |  |  | echo yes | 
					
						
							|  |  |  | # a comment with " ' \ | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | echo $x | 
					
						
							|  |  |  | unset x | 
					
						
							| 
									
										
										
										
											2009-01-12 13:36:28 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-21 20:51:19 -05:00
										 |  |  | # fixed after bash-4.0 released | 
					
						
							|  |  |  | : $(case a in a) echo ;; # comment | 
					
						
							|  |  |  | esac) | 
					
						
							| 
									
										
										
										
											2016-09-15 16:59:08 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | # fixed after bash-4.3 released | 
					
						
							|  |  |  | testing=$( | 
					
						
							|  |  |  |     echo test | while read line; do | 
					
						
							|  |  |  |         case $line in | 
					
						
							|  |  |  |              test)  echo saw test ;; | 
					
						
							|  |  |  |              *)     echo other ;; | 
					
						
							|  |  |  |         esac | 
					
						
							|  |  |  |     done | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # recommended to be parsed as a nested comsub instead of arithsub | 
					
						
							|  |  |  | echo $(( echo ab cde ) ) |