2013-08-11 6 views
-1

je lance la prochaine bash:Bash/command not found

cd /$P/"W${GU}" 
GV = $(find . -type f -printf '%[email protected] %p\n' | sort -n | tail -1 | sed 's/.*PO\.\([0-9]*\).*/\1/') 
\cp $P/"Wa ${GV}"/PO.${GV}/la_${GV}_PO.${GV}.exe $P/"$JOB_NAME"/S-${SV}_PO.$SV/G 

Il retourner la prochaine:

/tmp/h4.sh: line 3: GV: command not found 

Quelle est la raison? Bash (ou sh) ne tolère aucun espace autour de l'opérateur d'affectation =

+1

Vous ne pouvez pas avoir d'espaces dans les affectations de variables. Cela devrait être 'GV = $ (...' – user000001

+1

Cela devrait être une réponse, user000001 – Joni

Répondre

3

GV=$(find . -type f -printf '%[email protected] %p\n' | sort -n | tail -1 | sed 's/.*PO\.\([0-9]*\).*/\1/') 

S'il y a un espace, il interprète le premier mot (GV dans ce cas) comme une commande, qui est introuvable.

+0

En fait, ils tolèrent des espaces, mais la sémantique de l'instruction change fondamentalement. –