如何使用进程replace将bash作为string处理variables

我有这样的说法:

A=$(echo "echo a") && bash -c "awk -v var=\"$A\" 'BEGIN {printf \"%20s\", var}'" 

哪些产出:

  echo az 

而且我不能做这个单行本的工作:

 A=$(echo "echo a") && bash -c "paste <(awk -v var="$A" 'BEGIN {printf \"%-200s\n\", var}') <(echo "BBBB") --delimiters ''" a 'BEGIN {printf "%-200s\n", var}') <(echo BBBB) --delimiters '': -c: line 0: unexpected EOF while looking for matching `)' a 'BEGIN {printf "%-200s\n", var}') <(echo BBBB) --delimiters '': -c: line 1: syntax error: unexpected end of file 

我认为这是因为"$A"不被视为一个variables。 谁可以给我解释一下这个。 谢谢!

这似乎是工作:

 A=$(echo "echo a") && bash -c "paste <(awk -v var=\"$A\" 'BEGIN { printf \"%s\", var }') <(echo 'BBBB')" 

但是,我求求你,千万不要写这样的东西。 它只是普通的,它使人们的眼睛stream血。 请使用像Ruby / Python / Perl这样的真正的编程语言,如果你的shell脚本变得越来越复杂,那么命令列表和几个“if”语句和/或更长的时间就可以放在一个屏幕上。 否则,它将非常有趣,debugging和支持这些以后或为别人。