2010-12-07 22 views
0

内部からのコマンドを実行します。は、私はbashスクリプトから次のコマンドを実行するbashスクリプト

sudo cat << EOF>> /etc/profile 

export LD_LIBRARY_PATH=/lib:/lib64:/usr/lib:/usr/lib64:/usr/local/lib:/usr/local/lib64 
export JAVA_HOME=/opt/jdk1.6.0_22/ 
export PATH=${JAVA_HOME}/bin:/opt/tomcat/bin:${PATH} 

EOF 

sudo source /etc/profile 

しかし、次のエラーを取得:

/home/ak/init-script.sh: line 40: /etc/profile: Permission denied 
sudo: source: command not found 

に何を達成する方法についてのヘルプをが欲しいです?

アントニス

答えて

2

あなたが得る上sudoを使用する必要があり、「許可が拒否されました」エラーは、/ etc /プロファイルへの書き込みをしようとしたとき。猫、しかしにプロセスの書き込みは/ etc/profileはあなたの通常のユーザの権限を持っている - sudoが最初のコマンドだけに適用されるためです。このファイルが作成されない理由を

です。あなただけのいくつかの変数をエクスポートする必要がある場合、あなたはあなたのシェルから直接それを行うことができるので、そこworkaroundはあるが、私はあなたがそれを必要とは思わない:

export LD_LIBRARY_PATH=/lib:/lib64:/usr/lib:/usr/lib64:/usr/local/lib:/usr/local/lib64 
export JAVA_HOME=/opt/jdk1.6.0_22/ 
export PATH=${JAVA_HOME}/bin:/opt/tomcat/bin:${PATH} 

は、/ etcから設定をロードする必要がある場合お使いのシェルに/プロフィール、あなたはそれがそこに必要とされていない、sudoをせずにsource /etc/profileを実行することができます。素晴らしいことだ

+0

!ありがとうございました! – Antonis

3

source組み込みbashコマンドではなく、あなたがsudoで実行できるプログラムです。あなたがスクリプト全体

関連する問題