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

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

新規登録して質問してみよう
ただいま回答率
85.48%
シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

Linux

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

Q&A

解決済

1回答

7176閲覧

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

退会済みユーザー

退会済みユーザー

総合スコア0

シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

Linux

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

0グッド

0クリップ

投稿2018/07/22 16:29

編集2018/07/22 16:36

シェルスクリプト内にある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_list.txt

1rds-dev-test-1 2rds-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}

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

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

投稿2018/07/22 16:57

otn

総合スコア84557

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/07/22 17:06

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問