2012-01-21 18 views
23

私はLinuxには新しく、ここ数日はシェルスクリプトを使いこなして過ごしています。私は簡単に始めることにしました。私は、端末を開くときに端末のUIを多少提供する「バトラー」プログラムを作っています。本当に物事をテストするだけです。シェルスクリプト:変数を使ってパスを定義する

とにかく、私の問題はシェル変数との混乱にあります。私の理解では、変数を使用して値(この場合はString)を保存し、後でそれをコード内で呼び出すことができます。

私は、いくつかのスクリプトセットの長いパスを保持する変数を持っていたいと思うのであれば、理想的にはそれを保存しないだけです。ここで

は私の意味は次のとおりです。

私はおそらく間違った構文で、何をしようとしている
SPTH = '/home/Foo/Documents/Programs/ShellScripts/Butler' 

//Later on in that script// 

cd $SPTH 
./script1 

は、私たち「CD」に変数SPTH.Laterへのパスを設定することであり、私が設定しました引数は$ SPTHです。理想的には、パスを入力せずにファイルを実行することができます。

ただし、これは機能しません。それは単に "$ SPTH"を無視し、そのコマンドを "cd"だけとして扱います。

どうしたのですか?これを行う方法は何でしょうか?

+5

をスペースを使用しないでください" –

答えて

63

私の記憶が正しければ、あなたは「=を囲むスペースを使用しない...

(誤った)

SPTH = '/home/Foo/Documents/Programs/ShellScripts/Butler' 

(正)

SPTH='/home/Foo/Documents/Programs/ShellScripts/Butler' 
+0

ありがとう!今は魅力のように働く、私はこれを覚えておく必要があります。 – Nonameghost

+4

あなたのスクリプトに 'SPTH'を使用し、値にスペースがある場合は、パスに空白がある場合は – Eatdoku

+7

@Eatdoku、変数を二重引用符で囲みます。例えば。 'cd" $ SPTH "' –

関連する問題