プロが教えるわが家の防犯対策術!

ubuntuでもwindowsのバッチファイルみたいなものを作りたいのですができますか?
できるなら拡張子はなんですか?

A 回答 (6件)

特に拡張子は決まっていませんが、一般的に .sh を使用しています。


ファイルの1行目に以下のような記述をするとそのコマンドで読み込まれます。

bash で実行する場合
#!/bin/bash

perl スクリプトとして実行する場合
#!/usr/bin/perl

あと、実行権限を忘れずに指定してください。

chmod +x nantoka.sh
    • good
    • 0

>そのノリで、不用意に/home/barなどをPATHに設定すると


一応書いておくとカレントディレクトリにパスを通す場合「/home/bar」なんて書き方はせずに
./をパスに追加します。
    • good
    • 0

WindowsやMS-DOSとの違いとして、とまどいやすい点として


カレントディレクトリーの対応があります。

MS-DOSでは、拡張子で実行ファイルと判断され
また、拡張子を省略した場合、COM,EXE,BATなどで
カレントディレクトリーにあるものが最優先で実行されます。
(加えてBAT,COM,EXEの順だったかな?)

UNIX系のシェル上では、[TAB]での補完が効くこともあって
拡張子を省略した実行はできません。
また、明示しない限り、普通はカレントディレクトリーから実行ファイルを探しません。

実行ファイルは、PATHによって指定されたものが
管理された置き場所の実行ファイルとして扱われます。
一般的には、/home下のディレクトリーにPATHは設定されていません。

カレントディレクトリーの実行ファイルを実行するためには
実行権限を与えるだけでなく、./foo.shといった書式で
カレントディレクトリーにあるfoo.shを明示する必要があります。

こういった管理ルールは、開発中のトラブルを防ぐ
異なるディレクトリーを考慮しない実行ファイルを用いることを防ぐ
ある種のセキュリティ上の対策などの意味を持ちます。

MS-DOSなどでは、カレントディレクトリーに置いた
カレントディレクトリーだけで正常動作するバッチファイルが
カレントディレクトリーでのみ、優先的に選択されて実行されました。

そのノリで、不用意に/home/barなどをPATHに設定すると
ディレクトリー指定の不整合で、重大なトラブルを起こすこともありえます。
そういう意味では、UNIX的な管理ルールを逸脱しないほうが無難と言えます。


#ヲレは、自分の書いた条件分岐なんか信用しない
    • good
    • 0

>UNIXでは拡張子は大して意味を持ちません。


#3の人の補足になるけどUNIX系OSにおいてはパーミッションが大事です。
拡張子で判断されるのではなくて実行権をつければいいのです。


Linux限定だとsh系ですね。bashを使うのが一般的ですね。
ただWindowsのコマンドプロンプトと違ってシェルは切り替えることができます。
有名どころだとcsh(tcsh)などもあります。
    • good
    • 0

シェルスクリプトが該当するでしょうか。



UNIXでは拡張子は大して意味を持ちません。
Bsh系なら.sh, Csh系なら.cshを付けることもありますが、これらじゃないからといってシェルスクリプトではない、とは断言できません。拡張子のついていない場合も多いですし、極端な話、拡張子jpgのシェルスクリプトというのも可能です。
例えば、/usr/binの下にコマンドとして実行できるファイルがたくさんあります。これらの殆どに拡張子はありません。
このうちのいくつかは、Windowsのexeのようなコンパイルされたバイナリではなく、シェルやその他の(Perl等の)スクリプトです。
このあたりは、拡張子とそのファイルの種類が密接に関係するWindowsとは違います。

詳しくは「シェルスクリプト」で検索してください。
    • good
    • 0

シェルです。


.shです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!