Sun Grid Engine のシェル スクリプトで「未定義の変数」エラーが発生する

Sun Grid Engine のシェル スクリプトで「未定義の変数」エラーが発生する

次の Sun Grid Engine 送信スクリプトがあります。

#!/bin/sh
# sun grid engine cluster

# use current working directory
#$ -cwd

# merge error output into standard output stream
#$ -j yes
#$ -o generate_databases.log

# request to  cpu number
#$ -pe make 4

currentdir=`/bin/pwd`
echo "current working directory: $currentdir"

これが私の出力です

/home/eamorr/sge
currentdir: Undefined variable.

ご覧のとおり、「currentdir」変数は undefined を返します。

これを修正するにはどうすればいいでしょうか?

答え1

本当に bash ですか? バックティック演算子は移植性がありません。これを修正する方法はいくつかあります (おそらく):

  1. #!/bin/bash最初の行で使用して、それがbashであることを確認し、他のものではないようにします。
  2. バッククォートは避けてください:currentdir=$(pwd)またはcurrentdir=$(/bin/pwd)
  3. あるいはもっとシンプルにcurrentdir=$PWD

関連情報