シェルの損失を防ぐには、set -e を使用します。

シェルの損失を防ぐには、set -e を使用します。

bashスクリプトでset -eを使用したいが、実行するたびにエラーが発生するとシェルは終了します。

  say I have script.sh:

  #! /usr/bin/env bash
  set -e
  my_commmand
  my_other_command

my_commandこれを行うかどうかに関係なく、シェルを吹き飛ばすエラーが発生します。

 % ./script.sh (after chmod)

または

 % . ./script.sh

この問題を解決する簡単な方法が必要です。

ベストアンサー1

対話型シェルが終了したことを意味しますか?

対話型シェルからスクリプトセットをインポートすると(を使用して.)、set -e「exit-on-error」フラグも対話型シェルに設定されます。以前にこれを実行した場合は、ソーススクリプト()であるか、通常実行される. ./script.shスクリプト(./script.sh)でも、後で実行されるすべてのコマンドに適用されます。

解決策はスクリプトを調達することではありませんset -e

また、見ることができますバッシュFAQ 105その他の問題についてset -e

おすすめ記事