スクリプト内のグローバル変数にアクセスできるシェルスクリプトがありますが、独自のスクリプトを作成しようとすると、コマンドが見つかりませんで応答します。
#!/bin/bash
J = 4
FACE_NAME = "eig$J.face"
USER_DB_NAME = "base$J.user"
上記のスクリプトを実行すると、次の結果が得られます。
./test1.sh line 2: J: command not found
./test1.sh line 3: FACE_NAME: command not found
./test1.sh line 4: USER_DB_NAME: command not found
何か案は?? Windows XPでCygwinを使用しています。
これを試してください(=
の両側からスペースを削除したことに注意してください):
#!/bin/bash
J="4"
FACE_NAME="eig$J.face"
USER_DB_NAME="base$J.user"
Bashは変数を宣言するときにスペースを好みません-また、すべての値を引用符で囲むのが最適です(ただし、これは必須ではありません)。
変数を他のテキストに埋め込む場合は、中括弧を使用して変数名を区切ることをお勧めします。
#!/bin/bash
J=4
FACE_NAME="eig${J}.face"
USER_DB_NAME="base${J}.user"
ドットはここで機能しますが、そこに他の文字がある場合、変数名の一部として解釈される可能性があります。
「=」の間にスペースを入れないでください
J=4
FACE_NAME="eig${J}.face"
USER_DB_NAME="base${J}.user"