Bash: Dynamic replacing with perl
This question already has an answer here:
 Remove " + " (spaces and plus).  Bash does automatic concatenation for adjacent strings.  
echo 'hi!'t"here"  # hi!there
 Generating Perl code in this way is only safe because the output of id -g -n $USER won't contain  , $ , @ or / .  
You were going for
GROUPNAME="$(id -g -n $USER)"
perl -i -pe's/(PLACEHOLDER)/'"$GROUPNAME"'/g' filepath/file
But there's no reason to generate Perl code. That is very error prone. Instead, use one of the following:
export GROUPNAME="$(id -g -n $USER)"
perl -i -pe's/(PLACEHOLDER)/$ENV{GROUPNAME}/g' filepath/file
or
GROUPNAME="$(id -g -n $USER)" perl -i -pe's/(PLACEHOLDER)/$ENV{GROUPNAME}/g' filepath/file
                        链接地址: http://www.djcxy.com/p/29130.html
                        上一篇: 从用户输入创建一个文件名
下一篇: Bash:用perl动态替换
