Bash / команда не найдена

Я запускаю следующее в bash:

cd /$P/"W${GU}"
GV = $(find . -type f -printf '%T@ %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

Какова причина?


person user2490373    schedule 11.08.2013    source источник
comment
У вас не может быть пробелов в назначениях переменных. Это должно быть GV=$( ...   -  person user000001    schedule 11.08.2013
comment
Это должен быть ответ, user000001   -  person Joni    schedule 11.08.2013


Ответы (1)


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

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

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

person choroba    schedule 11.08.2013
comment
На самом деле они терпят пробелы, но принципиально меняется семантика высказывания. - person Ansgar Wiechers; 11.08.2013