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

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

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

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

Linux

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

Q&A

解決済

1回答

1282閲覧

【Linux】シェルスクリプトで、変数に代入したコマンドが実行されない

退会済みユーザー

退会済みユーザー

総合スコア0

シェルスクリプト

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

Linux

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

0グッド

0クリップ

投稿2018/07/22 17:16

編集2018/07/22 17:21

シェルスクリプトで、コマンドを実行するときは、
実行コマンドを変数に入れて、その変数を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 sh ./create_cluster_instance.sh rds-dev-test-1 snapshot-dev-20180718 ====================================================== rds_instance: rds-dev-test-2 sh ./create_cluster_instance.sh rds-dev-test-2 snapshot-dev-20180718

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

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} done < ${RDS_LIST}

create_cluster_instance.sh

#!/bin/bash echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 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ページで確認できます。

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

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

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

otn

2018/07/23 01:43

実行部分がコメントになっていますが??実際のスクリプトを載せてください。
guest

回答1

0

ベストアンサー

bash

1eval ${cmd} 2

では?

投稿2018/07/23 04:14

sysjojo

総合スコア325

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問