シェル変数と環境変数の違い(LPIC)
シェル変数と環境変数の違い
シェル変数と環境変数を設定します。
$ export POKEMON_ENV=Snorlax # 環境変数を設定
$ POKEMON_SHELL=Ditto # シェル変数を設定
$ cat << END > pokemons.sh # pokemons.shを作成
#!/bin/sh
echo \$POKEMON_ENV
echo \$POKEMON_SHELL
END
$ chmod 777 pokemons.sh # 権限を付与
シェル変数のPOKEMON_SHELLは子プロセスに引き継がれません。
$ bash pokemons.sh
Snorlax
子プロセスを作らなければ環境変数もシェル変数も表示されます。
$ . /Users/snorlax/Desktop/pokemons.sh
Snorlax
Ditto
$ source pokemons.sh
Snorlax
Ditto