BASH:用于Shell脚本的Sudo Cat多行命令

Dav*_*ams 2 linux bash shell maven

我想将几行shell命令附加到root拥有的文件中.我有权sudo访问.总之我想说的是:

export M2_HOME=/opt/apache-maven-3.1.1 
export M2=$M2_HOME/bin 
PATH=$M2:$PATH 
Run Code Online (Sandbox Code Playgroud)

我试过这个:

m2config=$(cat << EOL
export M2_HOME=/opt/apache-maven-3.1.1
export M2=\$M2_HOME/bin
PATH=\$M2:\$PATH
EOL
)
Run Code Online (Sandbox Code Playgroud)

然后

sudo bash -c "echo $m2config >> /etc/profile.d/maven.sh"
Run Code Online (Sandbox Code Playgroud)

但无济于事.有谁知道如何做到这一点?我已经咨询了许多类似的问题但没有解决这个确切的需求.

pob*_*key 13

sudo bash -c "cat >> /etc/profile.d/maven.sh" << EOL
export M2_HOME=/opt/apache-maven-3.1.1
export M2=\$M2_HOME/bin
PATH=\$M2:\$PATH
EOL
Run Code Online (Sandbox Code Playgroud)

如果你不喜欢产生一个子壳,sudo tee -a /etc/profile.d/maven.sh > /dev/null << EOL也可以.