/ / BASH: Sudo Cat Multiline Commands to Shell Script - linux, bash, shell, maven

BASH: príkazy Sudo Cat Multiline pre Shell Script - linux, bash, shell, maven

Chcem k súboru, ktorý vlastní root, pridať niekoľko riadkov príkazov shellu. mám sudo Prístup. Stručne povedané, chcem to povedať:

export M2_HOME=/opt/apache-maven-3.1.1
export M2=$M2_HOME/bin
PATH=$M2:$PATH

Snažil som sa toto:

m2config=$(cat << EOL
export M2_HOME=/opt/apache-maven-3.1.1
export M2=$M2_HOME/bin
PATH=$M2:$PATH
EOL
)

a potom

sudo bash -c "echo $m2config >> /etc/profile.d/maven.sh"

Ale k ničomu. Vie niekto, ako to urobiť? Konzultovala som s mnohými podobnými otázkami, ale žiadna sa nezaoberala touto presnou potrebou.

odpovede:

10 pre odpoveď č. 1
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

Ak sa vám nepáči vytvárať podhviezdu, sudo tee -a /etc/profile.d/maven.sh > /dev/null << EOL funguje rovnako dobre.