質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.50%

  • Linux

    3779questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • シェルスクリプト

    95questions

【Linux】シェルスクリプト内のechoコマンドの挙動がおかしい

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 136

hiyocco

score 7

シェルスクリプト内にあるechoコマンドの挙動がおかしいです。
原因及び解決方法をご存知の方、お知恵を貸してください。

以下、詳細になります。

 ◇実行コマンド

$ sh ./main.sh rds_list.txt snapshot-dev-20180718

 ◇実行結果

$ sh ./main.sh rds_list.txt snapshot-dev-20180718
RDS_LIST: rds_list.txt
SNAPSHOT: snapshot-dev-20180718
======================================================
rds_instance: rds-dev-test-1
 snapshot-dev-20180718stance.sh rds-dev-test-1  ## ここがおかしい!!!

======================================================
rds_instance: rds-dev-test-2
 snapshot-dev-20180718stance.sh rds-dev-test-2  ## ここがおかしい!!!

 ◇引数に指定したファイル

 rds_list.txt

rds-dev-test-1
rds-dev-test-2

 ◇シェルスクリプト

 main.sh

#!/bin/bash

RDS_LIST=$1
SNAPSHOT=$2

echo "RDS_LIST: ${RDS_LIST}"
echo "SNAPSHOT: ${SNAPSHOT}"

while read rds_instance
do

  echo ======================================================
  echo "rds_instance: ${rds_instance}"

  cmd="sh ./create_cluster_instance.sh ${rds_instance} ${SNAPSHOT}" 
  echo ${cmd}  # ここのコマンドの挙動がおかしい!!
  ${cmd} # >> ${rds_instance}.log &

done < ${RDS_LIST}

 create_cluster_instance.sh

#!/bin/bash

profile="aws-dev"

# set Cluster parameter
rds_cluster=`echo $1`-cluster
snapshot=$2
db_subnet_group_name="iotcld-dafdev-1"
vpc_security_group_ids="vpc_security_group_ids"
db_cluster_parameter_group_name="db_cluster_parameter_group"

# set Instance parameter
rds_instance=$1
db_instance_class="db.r3.2xlarge"
availability_zone="ap-northeast-1a"
db_parameter_group_name="db_parameter_group"
master_user_password="master_user_password"

# create the RDS cluster
cmd="aws --profile ${profile} rds restore-db-cluster-from-snapshot --engine aurora --db-cluster-identifier ${rds_cluster} --snapshot-identifier ${snapshot} --db-subnet-group-name ${db_subnet_group_name} --vpc-security-group-ids ${vpc_security_group_ids}"
echo ${cmd}
#${cmd}

#  # wait until the cluster's status changed into available.
#  while true
#  do
#
#    sleep 600
#
    cmd="aws --profile ${profile} rds describe-db-clusters --filters Name=db-cluster-id,Values=${rds_cluster}"
    echo ${cmd}
#    rds_status=`${_cmd} | jq -r '.DBClusters[0].Status'`
#    if [ ${rds_status} == "available" ];then
#        break
#    fi
#
#  done

# modify the cluster's parameter group
cmd="aws --profile ${profile} rds modify-db-cluster --db-cluster-identifier ${rds_cluster} --db-cluster-parameter-group-name ${db_cluster_parameter_group_name}"
echo ${cmd}
#${cmd}

# create an RDS instance
cmd="aws --profile ${profile} rds create-db-instance --engine aurora --db-cluster-identifier ${rds_cluster} --db-instance-identifier ${rds_instance} --db-instance-class ${db_instance_class} --availability-zone ${availability_zone} --db-parameter-group-name ${db_parameter_group_name} --no-multi-az --no-publicly-accessible --master-user-password 
 ${master_user_password}"
echo ${cmd}
#${cmd}
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

出力結果をよく見ましょう。
rds_list.txtの改行コードがCRLFになっています。
LFにましょう。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/07/23 02:06

    解決しました!

    シェルスクリプト書いたのが初めてでして、お手を煩わせてしまいました。
    ありがとうございます!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Linux

    3779questions

    Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

  • シェルスクリプト

    95questions