2つのシェルスクリプトがあります。
$ cat java_alternative_7
#!/bin/sh
sudo update-java-alternatives -s java-7-oracle
$ cat java_home_7
#!/bin/sh
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
両方のファイルを実行/インポートできます。簡単です。
$ sh java_alternative_7
$ javac -version
javac 1.7.x_yy
$ source java_home_7
$ echo $JAVA_HOME
/usr/lib/jvm/java-7-oracle
これら2つのステップを同時に完了するにはどうすればよいですか?
ベストアンサー1
次のスクリプトをマージしたくない場合
#!/bin/sh
sudo \
env JAVA_HOME=/usr/lib/jvm/java-7-oracle \
update-java-alternatives -s java-7-oracle
使用できる
#!/bin/sh
sudo \
env BASH_ENV=path/to/java_home_7 \
bash -c 'update-java-alternatives -s java-7-oracle'
これにより、スクリプトがで始まるインラインスクリプトで実行されますupdate-java-alternatives
。このユーティリティは、環境変数を設定するスクリプトのパス名で環境変数を設定します。これにより、スクリプトはユーティリティを呼び出す前に他のスクリプトのソースを自動的に取得します。bash -c
env
sudo
env
BASH_ENV
JAVA_HOME
bash -c
update-java-alternatives
環境変数設定を使用すると、環境が最初に消去されてenv
も変数が設定されます。sudo