Fehler „Undefinierte Variable“ im Shell-Skript auf der Sun Grid Engine

Fehler „Undefinierte Variable“ im Shell-Skript auf der Sun Grid Engine

Ich habe das folgende Übermittlungsskript für die 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"

Und hier ist meine Ausgabe

/home/eamorr/sge
currentdir: Undefined variable.

Wie Sie sehen, gibt die Variable „currentdir“ „undefined“ zurück.

Wie kann ich das beheben?

Antwort1

Sind Sie sicher, dass es Bash ist? Der Backtick-Operator ist nicht portierbar. Es gibt mehrere Möglichkeiten, dies (möglicherweise) zu beheben:

  1. Verwenden Sie #!/bin/bashin der ersten Zeile, um sicherzustellen, dass es sich um Bash handelt und nicht um etwas anderes
  2. Vermeiden Sie die Backticks: currentdir=$(pwd)odercurrentdir=$(/bin/pwd)
  3. oder noch einfachercurrentdir=$PWD

verwandte Informationen