全長DR:export
エイリアス/変数はコマンドを使用して定義する必要があり、フルパスは使用できず、相対パスを使用すると(つまり、割り当てたいディレクトリのすぐ上にエイリアスを定義する場合)、エラーが発生しますNot found
。私ができることは他にありますか?
次の 2 つのコマンドを実行する必要があります。
export FREESURFER_HOME=/usr/local/freesurfer
source $FREESURFER_HOME/SetUpFreeSurfer.sh
ただそのシステムが私のものではなく、権限がないだけです/usr/local/freesurfer
。そのため、一時的にfreesurferというプログラムを他の場所にインストールしました(フルインストールパスは/Raid6/users/bob/Downloads/freesurfer
)。
だから私はfreesurferディレクトリにエイリアスを設定しようとしました。 (ファイルがすでに定義されていてそれを使用していると仮定しているFREESURFER_HOME
ため、この手順を実行する必要があります。SetUpFreeSurfer.sh
次のようにフルパスを使用し、次のように入力してexport FREESURFER_HOME=/Raid6/users/bob/Downloads/freesurfer
Enter$FREESURFER_HOME
キーを押すと、「許可拒否」エラーが発生します。
したがって、「ダウンロード」ディレクトリに移動して入力すると、そのls
ディレクトリなどが一覧表示されますfreesurfer
。その後、しようとしましたexport FREESURFER_HOME=freesurfer
が、そうした後に$FREESURFER_HOME
Enterキーを押して押すとメッセージが表示されますfreesurfer: not found
。
ここで何をすべきかわからない、または助けてくれてありがとう。
ベストアンサー1
あきらめて輸出指示する。
FREESURFER_HOME=freesurfer
他の言語では、これは$FREESURFER_HOME = "freesurfer"
文字列の割り当てにすぎません。 Bashは、文字列を参照するか変数値を参照するかを各目的に応じて決定します。
$ echo FREESURFER_HOME
FREESURFER_HOME
$ echo $FREESURFER_HOME
freesurfer
ドル記号は、bashにその名前の値/内容を意味することを伝える方法です。
変数を設定した後に使用できます(ドル記号を含む)。
source $FREESURFER_HOME/SetUpFreeSurfer.sh
変数を使用する目的です。変更されたfs-homeディレクトリからスクリプトを実行/インポートしようとしました。通話の場合、source freesurfer/SetUpFreeSurfer.sh
内容が「freesurfer」であるのとまったく同じです。
コマンド(最初の単語はcommand!)を入力すると、$FREESURFER_HOME
「freesurf」(または何でも)の値に展開され、これは既存のコマンドではありません(->見つかりません)。
それ以外の場合は、変数の有効なコマンドに悪いことが発生する可能性があります。
$ cmd='echo hello'
$ $cmd
hello
ここでは何も起こりません。友好的な命令です。しかし、これはエイリアシング少なくとも疑わしいです。そうする人はいないと思います。破壊的な。正常な場合ニックネーム追加の組み込み機能があります。
$ alias cmd='echo hello'
$ cmd
hello
($
ここにはサインはありません。はるかに良いです!)
(おそらく変数を伝播するにはエクスポートする必要があります。これらの事実はまったく変わりません。もう一度入れてください!)