複数行を使用して変数を割り当てる

複数行を使用して変数を割り当てる

機能があります。

f(){
    echo 777
}

そして、関数の「戻り値」を割り当てる変数です。

x=$(f)

とても簡潔です!しかし、私の実際のコードでは、変数名と関数名がかなり長く、関数も位置パラメータを使用するため、上記の簡潔な行は非常に長くなります。私は仕事をきれいに保つのが好きなので、上記のコードを2行に分割したいと思います。

x=\
$(f)

それでも動作します!しかし、きれいに保つことは、インデントを尊重することを意味するので、これは次のような結果を提供します。

if foo
    x=\
    $(f)
fi

空白のためもう動作しません!良い解決策がありますか?

ベストアンサー1

なぜ複雑で読みにくい構造なのか?中間操作、空の文字列を構成する素晴らしい方法、参照の微妙さ、または他の認知負荷が不要な完全に自然な表現方法があります。

if foo; then
    x=$(
      a_very_long_command_name --option1='argument 1 is long' \
                               --option2='argument 2 is long as well'
    )
fi

おすすめ記事