Ошибка "неопределенная переменная" в сценарии оболочки в 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? Оператор с обратной связью не является переносимым. Есть несколько способов (возможно) исправить это:
- использование
#!/bin/bash
в первой строке, чтобы сделать Dure это Bash, а не что-нибудь еще - Избегайте галочек:
currentdir=$(pwd)
или жеcurrentdir=$(/bin/pwd)
- или даже проще
currentdir=$PWD