Tengo el siguiente script de envío de 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"
Y aquí está mi salida.
/home/eamorr/sge
currentdir: Undefined variable.
Como puede ver, la variable 'currentdir' devuelve undefined.
¿Cómo arreglar esto?
sh
gridengine
Eamorr
fuente
fuente
/bin/pwd
¿es correcto? ¿Funciona cuando se invoca manualmente?/home/eamorr/sge
) sugiere que está encontrandopwd
. Y, incluso si no, no debería causar este error;foo=`/no/such/command`
Todavía debe asignar una cadena nula afoo
o abortar el guión.Respuestas:
¿Estás seguro de que es bash? El operador backtick no es portátil. Hay varias maneras de (posiblemente) arreglar esto:
#!/bin/bash
En la primera línea para hacer esto no es bash nada máscurrentdir=$(pwd)
ocurrentdir=$(/bin/pwd)
currentdir=$PWD
fuente
currentdir=$(/bin/pwd)
, pero volvióIllegal variable name