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
。