Ho scritto il seguente script per impostare alcune variabili di ambiente quando necessario.
#!/bin/sh
export BASE=/home/develop/trees
echo $BASE
export PATH=$PATH:$BASE
echo $PATH
Sotto il comando e i risultati che posso vedere sul mio terminale: lo script viene eseguito, ma le variabili non sono impostate alla fine.
~$: ./script.sh
/home/develop/trees
/bin:......:/home/develop/trees
~$: echo $BASE
~$:
Cosa c'è che non va? Grazie in anticipo. mirko
export
passare variabili alle subshell, una subshell è una copia della shell corrente, incluse variabili e funzioni, ecc. Le variabili esportate vengono copiate nei nuovi processi generati dalla shell, indipendentemente dal fatto che tale processo sia o meno un'altra shell. In secondo luogo,.
è il comando POSIX per l'approvvigionamento. Bash aggiungesource
come sinonimo più leggibile, ma non puoi fare affidamento sul fatto che sia disponibile in sh. Infine,. ./script
invece di. script
se vuoi evitare sorprese. mywiki.wooledge.org/BashFAQ/060