• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:適切なシェルスクリプトの実行方法について)

シェルスクリプトの実行方法について

このQ&Aのポイント
  • シェルスクリプト内でi18nの再読み込みをするためには、. /etc/sysconfig/i18nと記述しますが、シェルスクリプト終了後にi18nの内容が反映されません。
  • 「./shell1.sh」を実行したスクリプトは新たに作成された子プロセスによって実行され、スクリプトが終了し親プロセスに戻っても親自身は再読み込みを行なっていないため、このような現象が起こります。
  • 「source shell1.sh」とsourceコマンドを使ってシェルスクリプトを実行すると、i18nの再読み込みが正しく行われます。しかし、エラー時にログアウトするなどの弊害があるため、他の回避策も検討する必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • ballville
  • ベストアンサー率47% (233/487)
回答No.2

ごめんなさい、質問2を見落としていました。 source で同一プロセスの中で動かさなければ無意味ですので、set -e で処理を中断してしまうと その途端に落ちてしまいます。別のエラーハンドリング方法を考えてください。 たとえばこんな方法 http://d.hatena.ne.jp/yohei-a/20091222/1261458975 ならコード量も少ないでしょうし。 ダメなら素直にtrapを使うとか。 killall $0 で 止める手もあるかもしれません

参考URL:
http://ja.softuses.com/10199
ygn001
質問者

お礼

教えて頂いた方法にて解決できました! ありがとうございました。

その他の回答 (1)

  • ballville
  • ベストアンサー率47% (233/487)
回答No.1

>シェルスクリプト自体は >./shell1.sh >という形で実行しています。 ではなく、 source ./shell1.sh とするとどうなりますか

関連するQ&A