
次の 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 ですか? バックティック演算子は移植性がありません。これを修正する方法はいくつかあります (おそらく):
#!/bin/bash
最初の行で使用して、それがbashであることを確認し、他のものではないようにします。- バッククォートは避けてください:
currentdir=$(pwd)
またはcurrentdir=$(/bin/pwd)
- あるいはもっとシンプルに
currentdir=$PWD