スクリプトを作る

スクリプトは,Macでもsunでも動きます.Unixならば大体同じように動きます. ですので,どちらで試してみてもかまいません. ここでは,Macでスクリプトを作り,動かす方法を書いてみます.
最後に同じスクリプトをsunで動かしてみましょう.
  1. ファイルの作成
    mi か emacs を使って,次のようなファイルを作成してください.
    #!/bin/sh
    ls > list.txt
    diff list.txt list.last.txt
    rm list.last.txt
    mv list.txt list.last.txt
    
    このページからコピー&ペーストしてかまいません.
  2. 改行コードの変更
    現在のMacはUnixなのですが,昔のMacはUnixではありませんでした. その関係で,行の終わりをあらわす文字の番号(改行コード)が, Macの標準とUnixの標準で異なります.
    コンピュータ改行文字の略号意味改行文字の番号(16進数)
    Mac CR カーソルを一番左に移動0x0d
    UNIX LF カーソルを下に移動0x0a
    Windows CR+LF 両方0x0d 0x0a

    スクリプトはUnixのものなので,MacでもUnixの改行コードにしないと動きません. miの場合,下図のようにして文字コードをLFに切り替えてください.
    emacs は,もともとUnixのものなので切り替え不要です(だと思います).

  3. ファイルに保存
    ホームフォルダ(Macのフォルダ)に, lsdiffと言う名前のファイルとして 保存してください.
    保存したら,miを終了し,ファイルを閉じてください.
  4. ファイルのパーミッションの変更
    ファイルをスクリプトとして動作するようにするために必要な操作です. ファイルを実行できるように設定します.
    Macのターミナルを起動して,ターミナルで次のコマンドを実行してください.
    [XXXX:~] xxxxx% chmod 777 lsdiff
    
    [XXXX:~] xxxxx% ls -l lsdiff
    -rwxrwxrwx   ?????????????????   ユーザ名 日付 lsdiff
    
    のように一番左が rwx と成っていればOKです. (他のファイルに対して ls -l を行うと, rw------- となっている場合が多いです.)
  5. ターミナルから実行
    以上で完成です.ターミナルから
    [XXXX:~] xxxxx% ./lsdiff
    
    のように実行してみてください.上手く行けば,diffコマンドの出力が表示されます.
    上手く行ったら,フォルダにファイルを足したり,減らしたりして実行してみてください. 差が表示されると思います.
[講義ノートの目次へ]