Após a expansão da variável, a linha de comando normalmente não é reinterpretada.
Você precisaria de chamadas para eval
para o comportamento desejado.
Você realmente tem um problema XY . Para evitar duplicações de código, use uma função de shell:
convert_func(){
echo "CP1 $1" > "$2"
sudo awk 'BEGIN{printf "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<hello>\n\t<world>\n";} {print "\t\t",$0}END{printf "\t </world>\n</hello>\n"}' "$1" > "$2"
}
convert_func input1 targetfile1
convert_func input2 targetfile2