0

CentOS での Mono のコンパイルを自動化しようとしており、そのために bash スクリプトを作成しています。しかし、私はこれにまったく慣れていないので、ここでのベストプラクティスが何であるかわかりません。

これは私のスクリプトが今のように見えるものです:

# Variables
monoRepoUrl='http://download.mono-project.com/sources/mono'

monoPackageName='mono-2.10.8'
monoSubdir=$monoPackageName
srcDirectory='/usr/local/src'/$monoSubdir

monoUrl=$monoRepoUrl'/'$monoSubdir'/'$monoPackageName".tar.bz2"

# Prepare environment
echo ''
echo 'Installing pre-requisites packages'
echo ''
yum -y install gcc-c++ make httpd-devel gettext bison


######### Mono core stuff #########
echo ''
echo 'Getting Mono'
echo ''
wget $monoUrl
tar jxvf $monoPackageName.tar.bz2

$srcDirectory/configure -prefix=/opt/$monoPackageName; $srcDirectory/make; $srcDirectory/make install
echo export PKG_CONFIG_PATH=/opt/$monoPackageName/lib/pkgconfig:$PKG_CONFIG_PATH>>~/.bash_profile
echo export PATH=/opt/$monoPackageName/bin:$PATH>>~/.bash_profile
source ~/.bash_profile

echo ''
echo 'End of Mono installation'
echo ''

ただし、ここでの問題は、ディレクトリの変更が機能しないことです。スクリプトには独自のプロセスがあるようです。シンプルに保ちながら、これを行うためのよりエレガントな方法は何でしょうか(たとえば、絶対に必要でない限り、関数を使用したくありません)?

どこでも絶対パスを使用できますか? bash でのそのような状況のベスト プラクティスは何ですか?

4

1 に答える 1

-1

bash スクリプトを作成している場合は、常に絶対パスを使用していることを確認してください。bash は相対パスを受け入れたり読み取ったりしません。初心者なので、コマンドの絶対パスも指定するようにしてください。たとえば、yum だけでは機能しない場合があります。どの yum が最初に yum の絶対パスを取得するかを確認し、bash スクリプトで絶対パスを指定します。同時にスクリプトにも実行権限を与えていることを確認してください

于 2013-03-29T11:23:54.370 に答える