ダッシュ:パイプから変数を読み取る

ダッシュ:パイプから変数を読み取る

bashまたは、zsh次の構文を使用してパイプから変数を読み取ることができます。

echo AAA BBB | read X Y ; echo $X

これは印刷されますAAA

で同じアプローチが機能しないのはなぜですか/bin/sh

使っています/bin/sh- >/bin/dash スプリントDebian で

ベストアンサー1

なぜ同じ方法が '/bin/sh'で動作しないのですか?

パイプライン内の各コマンドはサブシェルで実行されるため、パイプラインから変数を割り当てると期待どおりにsh機能しません。bash実際、コマンドは実際に働くが宣言されXましたがY、パイプラインの外では使用できません。

以下が機能します。

echo AAA BBB | { read X Y ; echo $X; }

しかし、あなたの場合は:

この試み、

read X Y <<< "AAA BBB"

または

read X Y < <(echo "AAA BBB")

便利なリンク:

おすすめ記事