目前的做法:
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"}' hello > hello2
首选方法不起作用:
hello > hello2
想要定义为变量以避免代码重复
$CURRENT_TO_OUT=hello > hello2
echo "CP1" $CURRENT_TO_OUT
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"}' $CURRENT_TO_OUT
输出$ CURRENT_TO_OUT:
CP1 hello
变量扩展后,通常不会重新解释命令行。您需要致电以eval
获取所需的行为。
您实际上有一个XY问题。为避免代码重复,请改用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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句