0

私はこれを理解するために本当に誠実な努力をしましたが、できません。これは私の非常に単純な bash スクリプトです。「export」と「echo」で始まる行は機能しているように見えるので、スクリプトが実行されていることがわかります。ターミナルのプロンプトで「source」で始まる行を入力すると、コマンドが実行中であることを示す多くの出力が表示されますが、スクリプトを実行しても何も起こりません (実際、その後 Freesurfer を使用しようとすると、機能していないということです)。私は bash スクリプトについて理解できない非常に基本的なことがあると感じていますが、チュートリアルを見てもそれが何であるかを理解することはできません。

#!/bin/bash

export FREESURFER_HOME=/foo/freesurfer
echo "starting freesurfer"
echo $FREESURFER_HOME
source $FREESURFER_HOME/SetUpFreeSurfer.sh
export SUBJECTS_DIR=/bar/my_dir
4

1 に答える 1

0

それを使用してスクリプトを実行する./scriptname.shと、サブシェルで実行されます。そこに設定されているすべての変数などは、親シェルの環境を変更できません。そのためにはsource、スクリプトが必要です。

例を参照してください。スーパーユーザーに関するこの質問

于 2013-02-12T20:33:52.580 に答える