コマンドから継承するシェルスクリプトがあります
#!/usr/bin/env bash
set -eux
一貫して実行する必要があるさまざまなシェルスクリプト間で変数共有を開始したいので、通常このコマンドを使用して.envの変数をエクスポートします。
set -a
source .env
set +a
組み合わせの構文は適切ですか?
set -euxa
source .env
set +a
答え1
このset
コマンドは、args で提供されるシェル属性を変更します。指定しない属性は変更されません。これは、1回の呼び出しで複数の属性を組み合わせて設定したり、複数のset
呼び出しで同じ結果を得ることができることを意味しますset
。
この構文は次のとおりです。
set -e
set -u
set -x
set -a
あなたに同じ結果を与えるでしょう:
set -euxa
スタイルの観点から一時的に変更されるプロパティとは別に、スクリプトの実行時全体にわたって持続するプロパティを維持することをお勧めします。あなたのスクリプトには以下をお勧めします。
#!/usr/bin/env bash
set -eux
set -a
source .env
set +a