INDEX
はじめに
![](https://techlog.site/wp-content/uploads/2024/02/nwe_icon.jpeg)
社内の作業効率化の取り組みで.shファイルでgcloudが実行できない現象が発生しました。
原因は、.envの改行コードでした。
その解消方法を紹介します。
再現
1. シェルスクリプトと.envファイルを作成する
#!/bin/sh
# .envファイルのパス
ENV_FILE=".env"
# .envファイルの存在確認
if [ -f "$ENV_FILE" ]; then
# .envファイルを読み込んで環境変数に設定
export $(cat $ENV_FILE | xargs)
else
echo "Error: $ENV_FILE が見つかりません。"
exit 1
fi
gcloud storage cp --recursive -n files/* gs://$GCP_BUCKET_NAME/
GCP_BUCKET_NAME="sample_bucket"
2. シェルスクリプトを実行する
bash script.sh
実行結果を確認します。
$ bash script.sh
'RROR: (gcloud.storage.cp) HTTPError 400: Invalid bucket name: 'sample_bucket
原因
解決
dos2unix .env
bash script.sh
実行結果を確認します。
$ bash script.sh
Copying file://files\images\sampleimage.png to gs://sample_bucket/images/sampleimage.png
Average throughput: 1.2MiB/s
問題なくシェルスクリプトが実行出来ました!