エラーの原因個所(行番号、関数/コマンド名)を特定できるようにするための引数を受け取る。エラーの有無にかかわらず、最後に実行する関数。最後に行う処理がなければ省略してもいい。exitでなくreturnで戻り値として1を返すことでエラートラップ処理に渡せるようにする。ログに出力するエラー。:}エラー処理を適用する開始地点でtrapコマンドを実行trapコマンドはシグナルが発生した時の挙動を指定するコマンド。エラーのシグナルが発生した時の挙動を指定すればエラーハンドリングが可能になる。コマンドを実行した後で挙動が適用されるようになrうので、エラー処理を行う対象のロジックの直前で実行する。いう意味ではいわゆるtry()関数と同じ場所に差し込めばいい。エラー時の挙動を指定。エラーの発生個所(行番号と関数名)を引数としてエラー処理関数に送る。found."fiこの方法を使えばエラーの発生する可能性のあるコマンドを実行するたびにステータスコードやメッセージを取得する必要がない。既存のコードのメインロジックの前にsetコマンドやエラー関数、try処理を入れて、各コマンドの後に2&>1を追記するだけでエラーハンドリングが可能になる。具体的な処理を行うスクリプトを見ながら説明するが、以下の処理になる。StorageのバケットにコピーしてBigQueryで取り込み、クエリを実行する最後にSlack完了メッセージを送るありがちな処理でそこまで単純というわけではない。留意すべき点はSFTP接続はsshfsを使う→マウントとアンマウントが必要。エラーハンドリングのために必要。"引数(日数)を指定して下さい。任意のエラーを生成する関数。