Ошибка "неопределенная переменная" в сценарии оболочки в 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 возвращает неопределенное значение.

Как это исправить?

1 ответ

Вы уверены, что это Bash? Оператор с обратной связью не является переносимым. Есть несколько способов (возможно) исправить это:

  1. использование #!/bin/bash в первой строке, чтобы сделать Dure это Bash, а не что-нибудь еще
  2. Избегайте галочек: currentdir=$(pwd) или же currentdir=$(/bin/pwd)
  3. или даже проще currentdir=$PWD
Другие вопросы по тегам