- PR -

シェルスクリプトの拡張子について

1
投稿者投稿内容
Apprenti
会議室デビュー日: 2007/04/22
投稿数: 17
投稿日時: 2007-11-09 01:03

皆様

若葉マークのamiと申します。


RHEL ES4 上にて、業務ログをローテート
させるスクリプトを作成して、サーバに
設置したところ、拡張子を .bashでは無く
.shに変更しなさい〜と怒られました。

スクリプト内では、#!/bin/bashと定義して
おります。

拡張子を.shにしなくてはならない問題点/理由
ってどのような事があげられるのでしょうか?

意味が分からないので、悩んでいます。

どなたか教えて下さい、御願い致します。


スフレ
ぬし
会議室デビュー日: 2005/05/27
投稿数: 281
お住まい・勤務地: 東京
投稿日時: 2007-11-09 01:37
技術的な理由はないと思います。運用上のローカルルールとかじゃないですかね?

ただ、bash 専用スクリプト自体が珍しいですし、bash 専用スクリプトでも拡張子を .bash にするのは私は見たことはないです。

ゆっぽ
常連さん
会議室デビュー日: 2006/02/15
投稿数: 40
投稿日時: 2007-11-09 09:15
まったく問題ないと思います。
私としては、コマンド言語インタプリタごとに、ファイル名を変えることは
良いことだと思いますけどね。
amiさんは、正しいことをしたと思います。
悪いのは、その運用方法を教えず指示を出した上司の方でしょう。
そんなことで怒られて悩まなくても良いと思いますよ。
上司が無能なだけです。

[ メッセージ編集済み 編集者: ゆっぽ 編集日時 2007-11-09 09:16 ]
CHASER-V
会議室デビュー日: 2007/10/26
投稿数: 16
投稿日時: 2007-11-09 09:29
私も問題ないと思いますね。
ゆっぽさんがおっしゃるようにファイル名を変えることはいいことだと思います。
ただ・・私もすべて.shで作成しているのでなんともいえませんが・・。
とりあえず問題ないので、問題ない事を伝えましょう!
あんとれ
ぬし
会議室デビュー日: 2004/01/14
投稿数: 556
投稿日時: 2007-11-09 11:17
スフレさんが既に回答されていますが単なる習慣でしょう。
実際、拡張子が .sh でないものや、拡張子そのものがないものもたくさんありますよね。

ちなみに、.bash は見たことないですが、.csh はあったように思います。
Mattun
ぬし
会議室デビュー日: 2004/08/10
投稿数: 1391
投稿日時: 2007-11-09 11:53
僕はもっぱら.bash使ってます(後述)

引用:

ちなみに、.bash は見たことないですが、.csh はあったように思います。


/etc/profile.d にありますね。

まず、大前提として、UNIX系OSで拡張子は機能的な意味は持ちません。

ただ、同じシェルスクリプト配置フォルダに配置した際、
shとcshは構文も全然違うから、というのが前提で、
この2種は拡張子ごとに処理変えるような構成にしているんでしょう。

sh と bashは互換性があるというか、shだと思って実際にbashで動かしても、
まあ問題なく動きますから、見た目で区別がついてなくても問題にはなりにくいでしょう。
そもそもLinuxのsh自体がbashの場合、制限付きモードで起動してるだけなので、
まず問題にはならないですから、上司の判断自体はおかしいとは思いません。
(結果だけは。深く考えてない可能性も高いので、過程は知らん)


これが古いSolarisとかだと、区別付けないと軽く死ねます。
bashで使えてshで使えない構文なんて腐るほどあるし、
どちらを前提にして作ったシェルスクリプトかを分かる状態にしてないと
後々管理に支障が出ることもあります。


というわけで、.bashの方が収まりがいい、という考えは十分分かりますが、
その辺は構成管理ルールなので、従うか、ルールを変えるか、どちらかですね。
Apprenti
会議室デビュー日: 2007/04/22
投稿数: 17
投稿日時: 2007-11-09 17:52
皆様

若葉マークのamiです。

大変、勉強になりました!
御教示して下さって、有難う御座います。

多分、ルールなのかな?
さりげなく聞いてみます・・・
1

スキルアップ/キャリアアップ(JOB@IT)