• 検索結果がありません。

Microsoft PowerPoint - 16comp-int7-tool-sh-v2.pptx

N/A
N/A
Protected

Academic year: 2021

シェア "Microsoft PowerPoint - 16comp-int7-tool-sh-v2.pptx"

Copied!
31
0
0

読み込み中.... (全文を見る)

全文

(1)

コンピュータ入門 第

16回

UNIXのツールたち

シェルスクリプト⼊⾨

シェルスクリプト⼊⾨

本日の話題

とっても便利なUNIXのツール(コマンド)たち

テキスト12章

cut, touch, sort ....

正規表現⼊⾨

テキスト12章 12.7.1 いろんな⽂字列パターンを簡単に表現 grep, sed を使ってみよう

シェルプログラミング⼊⾨

テキスト3章,13章 シェルスクリプトって? 変数,制御制御⽂

(2)

UNIXのツールたち

便利に使って作業効率UP!

UNIXのコマンド

UNIXはもともと科学技術関係の研究⽤シス

テムとして開発

研究・開発に必要・便利なさまざまなコマンド

がある

⾼機能なコマンドからシンプルなものまで

UNIXコマンドは,

⼩さな機能をもつコマンドを組み合わせて複雑

⼩さな機能をもつコマンドを組み合わせて複雑

な処理をさせる

ことができる!!

リダイレクションやパイプを⽤いたコマンド間のデー タの受け渡し機能を存分に利⽤

(3)

UNIXのツールの考え方

UNIXはもともと科学技術関係の研究⽤シス

テムとして開発

⼤量のデータに対して、同じ処理を繰り返し⾏

うのに適している。

誰がいつ実⾏しても同じ実験結果が出るように

するのに適している。

つまり

処理の⾃動化

が簡単にできるように作られて

いる。

2010年度コンピュータ入門 5 つまり

紹介するコマンド

すべては紹介できない

テキストには,よく使う便利なものを選びに選んで 掲載 掲載

ここではさらに選りすぐった以下のコマンドを

紹介

cut : ⼊⼒⽂字列から指定された部分を切り出し sort: あるルールに従ってデータを整列 tr : ⽂字を置き換え touch: ファイルにお触り grep: 指定された⽂字列を含むものを表⽰ sed: ⼊⼒⽂字列中の指定されたパターンを置換

(4)

オンラインマニュアル

(おさらい)

UNIXでは,ほとんどすべてのコマンドに対する

ンラインマニュアル

を完備

コマンドや,ファイル,機能に関する詳細な説明 “man”コマンドで参照

例 “cse$ man man”: manコマンドに関するマニュアル

UNIXを利⽤する上で,オンラインマニュアルの活

⽤は必須.

2010年度コンピュータ入門 7 たいていのことはマニュアルに記載 ⼈に聞く前にマニュアルを読む 最近はほとんど⽇本語のマニュアルになっている

オンラインマニュアルの見方

$ man ls

• [space] で Page Down • ‘b’ で Page Up

(5)

日本語マニュアルに関する注意

ほとんどのマニュアルはもともと英語で書か

れている。

どこかの親切な⼈がボランティアで⽇本語に訳

してくれている。

⽇本語版を販売しているメーカーが嫌々訳して

いる。

ありがたいんだけどあまりいい⽇本語ではな

2010年度コンピュータ入門 9

ありがたいんだけどあまりいい⽇本語ではな

い場合が多い。

興味のある⼈は英語のマニュアルを探して読

んでみよう。

コマンドの紹介

(6)

UNIXでよく用いられるデータ形式

エディタで作成できる「テキスト」

これを「プレーンテキスト」データなどという

これを「プレ ンテキスト」デ タなどという

⾏列形式

各⾏の区切りは改⾏記号<CR>

各列(フィールド)は区切り⽂字(スペース、”,”な

ど)で区切られている

⾏ 意味 あ

デ タ

1⾏に意味のあるひとかたまりのデータ

データ作成に⽤いたプログラムが無くなって

も、これなら

何とかなる

2010年度コンピュータ入門 11

データファイルの例

TOTO 1982 TOTO IV Rosanna 5:32 TOTO 1982 TOTO IV Make Believe 3:48 TOTO 1979 Hydra All Us Boys 5:03 TOTO 1979 Hydra All Us Boys 5:03 TOTO 1981 Turn Back Goodbye Elenore 4:54 Journey 1981 Escape Keep On Runnin’ 3:40 Journey 1983 Frontiers Separate Ways 5:27

(7)

実際のデータ

TOTO<TAB>1982<TAB>TOTO IV<TAB>Rosanna<TAB>5:32<CR>TOTO<TAB>19 82<TAB>TOTO IV<TAB>Make Believe<TAB>3:48<CR>TOTO<TAB>1979<TAB>

82<TAB>TOTO IV<TAB>Make Believe<TAB>3:48<CR>TOTO<TAB>1979<TAB>

Hydra<TAB>All Us Boys<TAB>5:03<CR>TOTO<TAB>1981<TAB>Turn Bac k<TAB>Goodbye Elenore<TAB>4:54<CR>Journey<TAB>1981<TAB>Esca pe<TAB>Keep On Runnin’<TAB>3:40<CR>Journey<TAB>1983<TAB>Fr ontiers<TAB>Separate Ways<TAB>5:27<CR>

2010年度コンピュータ入門 13 以下紹介するコマンドは、このようなプレーン テキストデータを処理するのに適したもの

cut コマンド

名前通り…

切り出す

プログラム

指定された⽂字を区切り⽂字(delimiter, separator)とし てフィールド(カラム)に分離( ) 指定したフィールドのみを出⼒

よく使うオプション

-d 区切り⽂字 : 区切り⽂字を指定 スペースなどシェルに対する特殊⽂字は “ “で囲む 9 例 -d“ “ ←スペースを区切り⽂字にしたい時 -f フィールド番号f フィ ルド番号 : 最初から何番⽬のフィールドを出⼒: 最初から何番⽬のフィ ルドを出⼒ するか? 複数指定するときは,”,(コンマ)”で区切る 9 例 -f1,2,5 -c ⽂字リスト : 任意⽂字⽬を区切りにする -b バイトリスト : 任意のバイト⽬を区切りにする

(8)

cut の使用例

$ echo “aaa:bbb:ccc:ddd:eee”| cut -d: -f1,3 aaa:ccc

$ ls *.tex

report1.tex report2.tex report3.tex $ ls *.tex | cut -d. -f1 report1 report2 report3 2010年度コンピュータ入門 15 “cut [オプション] ファイル名”のように⼊⼒ファイル名を 指定すると,ファイル内のデータを cut!! “cat ファイル名 | cut [オプション]” と同じ ファイルの中身を表示するコマンド

やってみよう

echo "aaa,bbb,ccc,ddd"

echo "aaa,bbb,ccc,ddd" | cut -d, -f1,3

who

who | cut -d" " -f1

ls -1 *.tex

l 1 * t

|

t d f1

ls -1 *.tex | cut -d. -f1

ls -1 コマンドは1⾏に1ファイル名で出⼒される

(9)

sort コマンド

名前通り…

整列する

(並べ替える)コマンド

⼊⼒データの各列を数字 or アルファベット順に並べ替 えて出⼒ えて出⼒

よく使うオプション

-n : 番号順に整列 これをつけないと,⼀⽂字ずつ辞書順で整列 9 例 111と23を与えた時, -n なし: 111, 23 -n あり: 23, 111 2010年度コンピュータ入門 17 -t 区切り⽂字 : フィールドの区切り指定 -k フィールド番号: 何番⽬のフィールドを使って整列さ せるか? -r : 逆順整列(普通は昇順)

sort の使用例

$ cat sort-data katayama:200: takumi:100: $ sort sort-data katayama:200: katayama:30: katayama:30: takumi:90: katayama:30: takumi:100: takumi:90: $ sort -t : -k 2 sort-data takumi:100: $ sort -n -t : -k 2 sort-data katayama:30: takumi:100: katayama:200: katayama:30: takumi:90: katayama:30: takumi:90: takumi:100: katayama:200:

(10)

やってみよう

ls -l

ls -l | sort -n -k 5

ファイルサイズでソートされるはず

ls -l | sort -k 6

⽇付でソートされるはず 2010年度コンピュータ入門 19 ⽇付でソ トされるはず ⽇付は数字じゃないので -n は指定していない

tr コマンド

tr … TRanslates characters

1⽂字単位での⽂字の置き換えコマンド

1⽂字単位での⽂字の置き換えコマンド

sed は複数の⽂字(⽂字列)の置き換え

使⽤例

tr ʼ[a-z]ʼ ʼ[A-Z]ʼ

⼊⼒⽂字列の⼩⽂字をすべて⼤⽂字に変換

tr ʼ[A-Z]ʼ ʼ[a-z]ʼ

⼊⼒⽂字列の⼤⽂字すべて⼩⽂字に変換

tr -d ʼ¥nʼ

⼊⼒データから改⾏(¥n)をすべて削除

(11)

touch コマンド(テキストなし)

指定されたファイルが存在する場合,ファイ

ルの更新⽇時を更新

指定されたファイルが存在しない場合,新し

くファイルを作成(中⾝は空っぽ)

よく使うオプション

2010年度コンピュータ入門 21 -a : アクセス時刻のみ変更 -m : 変更時刻のみ変更 -c : ファイルがない場合作らない -t 時刻 : 指定時刻に変更(普通は現在時刻)

touch の使用例

$ ls -l

rw 1 e000010 system 49 05月27日 19:03 sort data -rw--- 1 e000010 system 49 05月27日 19:03 sort-data $ touch chotto

$ ls -l

-rw--- 1 e000010 system 0 05月27日 19:12 chotto

-rw--- 1 e000010 system 49 05月27日 19:03 sort-data $ touch sort data

$ touch sort-data

-rw--- 1 e000010 system 0 05月27日 19:12 chotto -rw--- 1 e000010 system 49 05月27日 19:13sort-data

(12)

正規表現入門

正規表現とは?

詳しくは計算機⾔語等の講義で ここでは以下のように考える ⽂字やその繰り返しを表す特殊な表現(特殊⽂字)を ⽂字 繰り返 表 特殊な表現(特殊⽂字) ⽤いて,任意の⽂字列パターンを現すもの 例 「⼩⽂字のアルファベット5⽂字からなる⽂字列」 という意味の正規表現 9 [a-z][a-z][a-z][a-z][a-z] 「⼩⽂字のアルファベットの後ろに数字がくっついている⽂字列」 と う意味の正規表現 という意味の正規表現 9 [a-z]*[0-9]* 正規表現にもいろいろな種類がある ここでは,sed, grep で⽤いられるものを扱う オンラインマニュアル regexp を参照!!

(13)

正規表現での特殊文字

特殊⽂字

⽂字列のパターンを現すために⽤いる記号(⽂字) 特殊⽂字 組み合わせ 好きな⽂字列 パタ ンを表 特殊⽂字の組み合わせで,好きな⽂字列のパターンを表 現 特殊⽂字の種類と意味 . : 任意の1⽂字 [abc]: a,b,c のいずれか1⽂字 [^abc]: a,b,c 以外の1⽂字 中 「 ^: ⾏の先頭 $: ⾏の末尾 ¥{m¥} :直前で指定した ⽂字のm回の繰り返し 2010年度コンピュータ入門 25 ^ は [ ] の中で⽤いると,「〜 でない」という意味 [0-9] : 0から9のいずれか1⽂字 * : 直前の⽂字の0回以上の繰り 返し ⽂字のm回の繰り返し ¥: 特殊⽂字を特殊⽂字と して扱いたくない場合にエ スケープ テキストに,他にもいろいろ載って いるので,各⾃確認すること. より詳細には,オンラインマニュア ル参照の事

正規表現の例

みなさんの基盤ID

例 cin15000, cht15000…

先頭の⼀⽂字が”c” 続いて⼩⽂字のアルファベット 先頭の ⽂字が c ,続いて⼩⽂字のアルファベット が2⽂字、数字が5⽂字

正規表現で現すと…

^c[a-z][a-z][0-9][0-9][0-9][0-9][0-9] or ^c[a-z]¥{2¥}[0-9]¥{5¥}

基盤 は

基盤IDは

⽇本語では「先頭が"c"でそのあとに⼩⽂字のアル ファベットが2⽂字、数字が5⽂字続く⽂字列」 正規表現では「 ^c[a-z]¥{2¥}[0-9]¥{5¥} 」

(14)

正規表現の例

パスワードのエントリ

cin15000:xxxxxx:100:200:TEST:/home/22115/cin1 “ypcat passwd” というコマンドで確認できます cin15000:xxxxxx:100:200:TEST:/home/22115/cin1 5000:/bin/bash : で区切られた7つのフィールド 9 ユーザ名:パスワード:UID:GID:GCOS:ホーム:ログインシェル ⽇本語で表すと 「":"で区切られた7つの⽂字列からなり、そのうち3,4番⽬の 部分は数字。また各⽂字列は空でもいい。」 正規表現で現すと 2010年度コンピュータ入門 27 正規表現で現すと ^[^:]*:[^:]*:[0-9]*:[0-9]*:[^:]*:[^:]*:[^:]* ユーザ名やファイル名に使える⽂字は限定されているので、厳密 には正確ではないが…

正規表現を使うコマンド

正規表現を利⽤して,さまざまな⽂字列マッチング

を⾏う事で便利に使えるコマンドがある

grep : Global Regular Expression Print

与えられた正規表現にマッチする⽂字列を含む⾏を出⼒ つまり検索を⾏うコマンド

よく使うオプション

9 -v: 指定された正規表現にマッチする⽂字列を含まない⾏を出⼒

d S i

sed : Stream EDitor

sed コマンドにデータを流し込むと,正規表現で書かれた⽂字列 パターンにマッチ(合致)する⽂字列を次々に処理

(15)

grep の例

パスワードファイルから,cin15で始まるユー

ザ名のエントリのみ出⼒

t d | ʼ^ i 15[0 9]* ʼ

ypcat passwd | grep ʼ^cin15[0-9]*:ʼ

もうちょっと正確には

ypcat passwd | grep ʼ^cin15[0-9]¥{3¥}ʼ

(cin15で始まりその後に数字が3つ続くエントリ)

もうちょっとずるをすると

ypcat passwd | grep cin15

(パスワードファイルにcin15を含むエントリ)

2010年度コンピュータ入門 29

(パスワ ドファイルにcin15を含むエントリ)

「ログインシェルが/bin/bashの⼈」以外を出

ypcat passwd | grep -v ʼ/bin/bash$ʼ

なぜ

' が出てくるの?

おさらい

economy tex macro tex micro c micro tex

economy.tex, macro.tex, micro.c, micro.tex

があったとする

ls *.tex

ls economy tex macro tex micro tex

shellが置き換えてくれる

ls economy.tex macro.tex micro.tex

OS

が上記コマンドを実⾏

(16)

なぜ

' が出てくるの?

shellにも*などのメタキャラクタがある。

grep ^cin[0-9]*: とするとgrepに渡される以前に

g p

[

]

g p

shellが*を変換しようとしてしまう。

(変換されない場合もある。)

ルール

shell は ' ' で囲まれた部分は変換しない shell は で囲まれた部分は変換しない。 該当するファイル名がない場合はメタキャラクタを変換 せずにそのままコマンドに渡す。 2009年度コンピュータ入門 31

やってみよう

ypcat passwd

ypcat passwd | grep 22115

ypcat passwd | grep ⾃分のlogin名

ypcat passwd | grep bw

(17)

sed の例

ファイル中の bigin を begin に変換

sed ’s/bigin/begin/g’

g

g

g

ファイル名

s: 変換しなさい /変換前⽂字パターン/変換後⽂字パターン/ g: 同じ⾏に複数ある場合はすべて 9 g をつけないと,⼀度変換してしまうとその⾏は終了

⾏頭のスペースを削除

2010年度コンピュータ入門 33

sed ’s/^[(

スペース) ]*//’

先頭(^)のスペースの繰り返し(*)を空⽂字列に変換. つまり削除

sed のちょっと複雑な変換例

パスワードエントリからユーザ名とログイン

シェルを抜き出す

出⼒は 「 ザ名 グインシ ル 」 形式としよう 出⼒は 「ユーザ名:ログインシェル 」の形式としよう

パスワードのエントリは以下の通り

ユーザ名:パスワード:UID:GID:GCOS:ホーム:ログイン シェル つまり:で区切られた7つのフィールドの1つめと7つ めを出⼒する

パスワードエントリの正規表現

[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:[^:]*

[^:]*

(:以外の⽂字列)を

で表すとすると

☆:☆:☆:☆:☆: ☆:☆

(18)

sed のちょっと複雑な変換例

sed では ¥(¥)でくくるとその部分が保存され,

後から ¥数字 で参照できる

数字 参照

☆で表現すると

ypcat passwd | sed 's/¥(☆¥):☆:☆:☆:☆:☆: ¥(☆¥)/¥1:¥2/'

正規表現に戻すと

2009年度コンピュータ入門 35

正規表現に戻すと

ypcat passwd | sed ʼs/¥([^:]*¥):[^:]*:[^:]*:[^:]*:[^:]*:[^:]*:¥([^:]*¥)/¥1:¥2/ʼ実際は改行なし

「答えは一つじゃない」

UNIXでは同じことをするのにいろいろな⽅法が考えられま す それでいい! ⾃分の好みの⽅法を使いましょう それでいい! ⾃分の好みの⽅法を使いましょう。 100⼈いれば100種類の答えがあってあたりまえ。 「パスワードエントリからユーザ名とログインシェルを抜 き出す」 さっきはsedで実現した cut コマンドでもできる cut コマンドでもできる awk という別のコマンドを使う⽅法もある(⿊柳の好きな⽅法) 最近のはやりは perl という⾔語を使う⽅法 Emacs の⽅形カット機能(M-x kill-rectangle)を使ってもできる Emacs で⼿動で(⼒業で)削除するのもありといえばあり

(19)

シェルプログラミング入門

シェルプログラミングってなに?

シェルプログラミング

シェルスクリプト(shell script)を作成し,実⾏する事 script = 芝居などの台本のこと

shell script = shell の台本

= 複数コマンドの⾃動実⾏のための台本

上 ⼒す ドを

gnome-terminal上で⼊⼒するコマンドをそのままファ イルに記述して⼀気に実⾏する台本を書くことができ る!

(20)

はじめに注意事項を

皆さんが使っている shell は bash です。

echo $SHELL とやってみよう

echo $SHELL とやってみよう

bash を⽤いた shell script もあります。

が、ここでは基本となる sh を使う shell

2010年度コンピュータ入門 39

script について勉強することにします。

bash は sh の上位互換 (sh で実⾏可能なものは

bashでも実⾏可能)

シェルスクリプトの作成法

$ pwd foo よく行う作業 ファイルにそのまま書く $ date $ ls pwd <CR> date <CR> ls <CR> foo そのファイル名で中に書いてある 連の作業を実行できる $ foo 一連の作業を実行できる 簡単!

(21)

シェルスクリプト

既存のコマンドと全く同様に使える

(リダイレクション、パイプなど)

⾃分専⽤のコマンドを簡単に作成することが

できる。

if for などの条件⽂やループ処理も使えるの

2010年度コンピュータ入門 41

if, for などの条件⽂やル プ処理も使えるの

で、⼀種のプログラムを作ることができる

シェルスクリプトの作成法

(ちょっと大げさでした)

foo #!/bin/sh<CR> pwd <CR> date <CR> ls <CR>

% chmod u+x foo

先頭で「shを使っ て実行してくださ い」という宣言を

する

% chmod u+x foo

一つのファイルにつ き一回でOK。

(22)

やってみよう

emacs foo &

foo というファイル名で以下の内容を保存

#! /bin/sh pwd date ls 2010年度コンピュータ入門 43

chmod u+x foo

./foo

./foo | sort | less

シェルプログラミングの基本事項

(1)

基本事項

コメント

# 始まる⾏は プ グラムとし 実⾏されな # で始まる⾏は,プログラムとして実⾏されない

変数(後述)

変数とは,値を⼊れておく⼊れ物 変数名=値 で変数に値を代⼊ 変数の中⾝を参照する時は,$変数名 #/bi / h #/bin/sh # ここはコメン ト i=Hello echo i echo $i echo $iWorld % ./hello i Hello HelloWorld 実行

(23)

シェルプログラミングの基本事項

(2)

コマンド置換 ` (バッククオート) で囲むと,その部分がコマンドの実⾏結果 に置き換わる(ʼ (シングルクオート)ではないので注意) に置き換わる( (シングルクオ ト)ではないので注意) #!/bin/sh

echo “Now, it is `date`”

% ./nowdate Now, it is 2010年05月28日 16時36分43秒 2010年度コンピュータ入門 45 他にもいくつか注意点があるので, テキストに目を通しておく事!!

以下、プログラミングに関する話があります

詳しいことについては、後半の授業、「プログラミ

ングI」にてプログラミングについて勉強した後に、

内容が

書いてある内容がわかるようになるはずです。

でも、ちょっとやってみればきっと理解できます。

来週からの課題で若⼲使⽤しています。

来週からの課題で若⼲使⽤しています。

プログラミングの講義の前に,がんばって理解して

みましょう。

(24)

制御構造

計算機に仕事をさせる時の基本的な構造

逐次処理

逐次処理

命令を書かれた順に処理 今までの例はすべて逐次処理

選択処理

条件にしたがって処理する内容を変更

反復処理

2010年度コンピュータ入門 47

反復処理

同じ処理を繰り返し

選択処理

if ⽂

条件によって処理する内容を変える

if 条件 then 条件が真の時の処理(複数⾏可) fi if 条件 then then 条件が真の時の処理(複数⾏可) else 条件が偽の時の処理(複数⾏可) fi

(25)

選択処理

条件によって処理する内容を変える

いくつでも書ける if 条件 then 処理1 elif 条件2 then 処理2 2009年度コンピュータ入門 49 なくてもよい else 処理3 fi

選択処理

#!/bin/sh ffname=xxxx.txt if [ -f $fname ] then

echo $fname exists. else

echo $fname is not found. fi $fname が存在していたら fi [ -f filename ] は,filename という ファイルが存在した時に成り立つ 詳しくは 13.3.1, 13.3.4参照

(26)

変数

⽂字列を保存することが出来る箱

任意の名前をつけることが出来る

任意の名前をつけることが出来る

filename=hoge.txt

echo $filename

filename という名前の変数

echo $filename

echo $filename exists.

2009年度コンピュータ入門 51 filename という変数の中身

選択処理の例

#!/bin/sh #!/bin/sh fname=hoge.txt if [ -f $fname] then

echo $fnameexists. else

echo $fnameis not found.

2009年度コンピュータ入門 fi

(27)

なにがうれしいの?

変数 fname の定義を⼀⾏変えるだけで、い

ろいろな名前のファイルが存在するかどうか

を確認できる。

変数 fname の中⾝を変えて、繰り返しこの

シェルスクリプトを実⾏すれば、⾃動的にた

くさんの名前のファイルが存在するかどうか

を確認できる

を確認できる。

2009年度コンピュータ入門 53

反復処理

同じ内容を繰り返す

for ⽂

#!/bin/sh

forsyurui intxt tex dvi ps do

for ⽂

for 変数 in 単語リスト do 処理1 処理2 … done do echo $syurui done %./for-test txt tex done dvi ps 変数に単語リスト中の単語をひとつずつ代入し, do と done の間の処理を繰り返し行

(28)

おさらい(ファイル名の展開)

aaa, bbb, ccc という3つのファイルが存在する

ディレクトリの場合、

% ls -l * % ls -l aaa bbb ccc Shell が * を存在するファイルの リストに展開してくれる Shell の内部処理 2010年度コンピュータ入門 55 「ファイルリストが出力され る」

よく用いる反復処理の例

For

filename

in

*

do

ls l $filename

ls -l $filename

wc $filename

done

$filename が存在するファイルの名前に順番に置き換え られて、ファイルの存在する回数だけ繰り返し実⾏され る る。 このスクリプトを実⾏したディレクトリに存在するファ イルすべて(ʼ*ʼの部分)について、ʼls -lʼとʼwcʼを順番に 実⾏する

(29)

その他

選択処理

他にも,case ⽂(13.3.5) がある

反復処理

反復処理

他にも,while ⽂(13.3.3) がある

スクリプト作成時の注意事項

単語は全て空⽩で区切ること。 2010年度コンピュータ入門 57 全⾓の⽂字と半⾓の記号を区別すること。 コメント以外に全⾓の⽂字は使わない! 最後に改⾏を忘れないこと。 #!/bin/sh WD report

その他

if と for を使った例

xxxx.tex というファイル名に 対して この部分で WD=report cd cd $WD

for filename in *.tex do

if [ -f `echo $filename | cut -d. -f1`.dvi ] then

echo $filename has already compiled.

対して,この部分で xxxxという名前を⽣成している $filename を受け取って, 区切り⽂字 . ⼀番⽬のフィールド出⼒ その後ろに,”.dvi” をくっつける echo $filename has already compiled.

else platex $filename fi done xxxx.tex というファイル名に 対して,この部分で xxxx.dvi という名前を ⽣成している

(30)

たとえばこんなスクリプトも

1.

指定されたLaTeXファイルに platex コマ

ンドを実⾏

2.

platexが成功したら xdvi で表⽰する

3.

OK? と聞く

4.

'y'と⼊⼒があったら

5.

dvipdfmxで dviファイルをpdfファイルに

2010年度コンピュータ入門 59 5.

dvipdfmxで dviファイルをpdfファイルに

変換する

簡単に作れます!

こんなスクリプトも

platexコマンドで⽣成されるファイル

(* aux * log * dvi)を削除する

(*.aux, *.log, *.dvi)を削除する。

作成から1ヶ⽉以上たった古いファイルを全

てoldというディレクトリに移動する。

友⼈5⼈がいまどの計算機の前に座っている

かを調べて出⼒する。

(31)

今回の演習予告

passwd ファイルを cut, sed を使っていろいろ遊

シェルスクリプトを読む

if, for などを使ったシェルスクリプトを作成する

2010年度コンピュータ入門 61 今回の講義資料,テキストだけでは⾜りない オンラインマニュアルを活⽤しよう!!

参照

関連したドキュメント

前処理フィルタ2B 漏えい個所 漏えいあり 腐⾷あり スラッジ塊あり 異常なし. 

「練馬区廃棄物の処理および清掃に関する条例」 (平成 11 年練馬区条例第 56

竣工予定 2020 年度 処理方法 焼却処理 炉型 キルンストーカ式 処理容量 95t/日(24 時間運転).

り分けることを通して,訴訟事件を計画的に処理し,訴訟の迅速化および低

処理処分の流れ図(図 1-1 及び図 1-2)の各項目の処理量は、産業廃棄物・特別管理産業廃 棄物処理計画実施状況報告書(平成

税務監督局の事務処理についても,細かく決められている。局務は総て局

過水タンク並びに Sr 処理水貯槽のうち Sr 処理水貯槽(K2 エリア)及び Sr 処理水貯槽(K1 南エリア)の放射能濃度は,水分析結果を基に線源条件を設定する。RO

 (所)   1,051     53   4,605     251    5,523    2,197    4,733  機器個数 ..  (個)   3,747    107   11,879     373   15,288    4,120