2016-05-11 17 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

スクリプトは意味あることに、その親に何か「エクスポート」することはできません。子プロセスには 'export'しかできません。これは何も作成せず、スクリプトが終了すると変数が消えます。 – 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"

最も可能性の高いエラーを持っていますエクスポートに由来し、どの識別子が無効であるかを通知しない場合、識別子は欠落しているか、またはnullに拡張されています。この場合、設定されていない変数が展開される可能性が最も高いです。 HYBRISから$を削除します。

1

dos環境で転送した場合はdos2unixを実行してください。

dos2unix script_name 

システムでdos2unixコマンドが見つからない場合は、dos2unixパッケージをインストールしてください。

+0

実行行を1行ずつチェックしたところ、upperString = "$ {environment ^^}"に固執されていると思われますが、ホームディレクトリでは正常に動作しています –

関連する問題