個人的によく利用するシェルコマンド備忘録
4983 ワード
- 個人的にシェルスクリプト内でAWS CLIコマンドを実行し、AWSリソースを作成することがある。
- その際によく利用しているシェルコマンドを備忘録としてまとめる。
ファイルの一括読み込み
-
ユースケース
- 変数ファイル(.env)を一括で読み込み、環境変数に埋め込みたい場合。
set -a; for f in ./env/*.env; do . ${f}; done; set +a;
ディレクトリパスを取得する
-
ユースケース
- 実行スクリプト内でスクリプトのディレクトリパスを取得したい場合。
dir=$(dirname $0)
/home/bin/create_aws_resource.sh
のように実行した場合、/home/bin
が取得される。
一時的なJSONデータを作成する
-
ユースケース
- AWS CLIコマンドに渡す一時的なJSONデータを作成したい場合。
外部のJSONファイルをベースに作成したい場合
- JSON構造が複雑で、スクリプト内部にJSONを定義したくない場合。
test_json_path=$(dirname $0)/json/test.json
test_json=$(cat ${test_json_path})
tempfile=$(mktemp)
echo ${test_json} | envsubst > ${tempfile}
※envsubst
利用
スクリプト内部で定義したJSONデータをベースに作成したい場合
- JSON構造が簡潔で、スクリプト内部にJSONを定義したい場合。
tempfile=$(mktemp)
cat > ${tempfile} << EOS
{
# JSON
}
EOS
※ヒアドキュメント利用
※スクリプト実行後には、tempfile
を削除することを忘れない。
JSONから任意の値を取得する。
-
ユースケース
- AWS CLIの実行結果として出力されたJSONから任意の値を取得したい場合。
response=$(AWS CLIコマンド) target_value=$(echo ${response} | jq -r ".HogeId")
※
jq
コマンド利用
※ダブルクォートなしで取得
※場合によっては、AWS CLI--query
オプションを使用する。
参考情報
Author And Source
この問題について(個人的によく利用するシェルコマンド備忘録), 我々は、より多くの情報をここで見つけました https://qiita.com/KWS_0901/items/9bf3a83bf99ba130da3d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .