2013-08-11 3 views
-1

Я бегу следующий в Баш:Bash/команда не найдена

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 

Он вернется следующий:

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

В чем причина?

+1

Вы не можете иметь пробелы в переменных назначениях. Это должно быть 'GV = $ (...' – user000001

+1

Это должен быть ответ, user000001 – Joni

ответ

3

Bash (или sh) не допускает пробелов вокруг оператора присваивания =.

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

Если есть место, он интерпретирует первое слово (GV в данном случае) в качестве команды, которая не найдена.

+0

На самом деле, они переносят пробелы, но семантика заявления существенно меняется. –

Смежные вопросы