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

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

решение1

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

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

Связанный контент