2016-05-11 3 views
-3

Я написал следующий сценарий оболочки. Это выполняется хорошо в домашней директории, но теперь, когда я переехал этот файл в другую папку и при попытке запустить этот файл, он дает : not a valid identifier error..Сценарий оболочки странный вопрос

#!/bin/bash 
echo "Specify environment(DEV,QA,PROD)" 
read environment 
upperString="${environment^^}" 
export HYBRIS_OPT_CONFIG_DIR=$HOME/hybris5.7/hybris/bin/custom/rockport-shop/Configurations/Environments/config-"$upperString" 
echo "Added Configuration ... " 

Как я могу найти эту проблему?

+2

Похоже, что в файле сценария появляется аберрантная каретка DOS. – tripleee

+3

Сценарий не может значимо «экспортировать» что-либо своему родителю. Вы можете «экспортировать» только дочерние процессы. Это не создает, и переменная исчезает, когда скрипт заканчивается. – tripleee

+0

читать без -r будет калечить обратную косую черту, думал, что это не имеет значения в вашем случае – sjsam

ответ

1

данные Ваш вопрос является неполным, но я готов поспорить, что даже если вы набрали здесь:

export HYBRIS_OPT_CONFIG_DIR=$HOME/hybris5.7/hybris/bin/custom/rockport-shop/Configurations/Environments/config-"$upperString"

, что вы на самом деле

export $HYBRIS_OPT_CONFIG_DIR=$HOME/hybris5.7/hybris/bin/custom/rockport-shop/Configurations/Environments/config-"$upperString"

ошибка, скорее всего, поступает из экспорта, и если он не сообщает вам, какой идентификатор является недопустимым, то идентификатор отсутствовал или был расширен до нуля. В этом случае ваша неустановленная переменная, скорее всего, расширится. Снимите $ от HYBRIS.

1

do dos2unix, если вы передали его с использованием среды dos.

dos2unix script_name 

Установите пакет dos2unix, если вы не нашли команду dos2unix в своей системе.

+0

Я проверил выполнение строки за строкой, и я думаю, что он застрял в upperString = "$ {environment ^^}", но в домашнем каталоге его работала нормально –

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