DZ—X 流プログラミング B シェルにおけるコマンド行引数 コマンド行引数を解釈する方法は、 B シェル、 C シェル、 C 言語のそれぞれですこしすっ異なります。ます、 B シェ ルの場合からみていきましよう。 B シェルのコマンド行引数は、未な変数として扱われ ます。あれこれ説明するより、実際にやってみたはうが簡 単です。次のようなプログラムを作って実行してください。 % cat comline # ! /bin/sh echo $ 0 % chmod + x comline % comline coml ine 4 今泉貴史 これは、コマンド名を出力するプログラムです。試しに 名前を変えてこのプログラムを実行してみましよう。 cp comline aaa ご覧のとおり、このプログラムはどんな名前で起動され てもその名前を出力します。これは、シェル変数の $ 0 にシ ェルプログラム自身の名前が保持されているからです。さ て、 $ 0 がコマンド名そのものだとすると、 $ 1 は何を意味す るのでしよう。 % cat comline # ! /bin/sh echo $ 1 UNIX でコマンドを起動する場合は、シェルに対してコ % comline マンド名 ( 実際にはファイル名 ) を入力します。たとえば、 % comline abc ファイルを編集するときには、エデイタの名前 ( 、、 vi 〃など ) abc をシェルに入力するとそのエデイタが起動されます。また、 % comline d e f 編集時にファイル名を指定する場合は、コマンド名に続け て ( 空白をあけて ) 対象のファイル名を入力します。では、 このように指定された引数は、コマンドにどのようにして お分かりいただけたでしようか。 $ 0 がコマンド名を表し 渡され、処理されるのでしようか ? この連載でいままでに ている場合、 $ 1 は 1 つ目の単語、つまりコマンド行での 2 とりあげたプログラムでは、このようなコマンド行の引数 つ目の引数を示しています。同様に $ 2 はその次の引数、 $ 3 はまたその次の引数・・・・・・というふうに、コマンド行で指定 を受け取ることはできませんでした。 今回は、このような引数の受け渡しについてみていきま された順番に 0 から始まる数字の変数名に格納されていき ます。これらの変数は、位置パラメータと呼ばれます。 しよう。 B シェルを用いてコマンド行引数を扱う方法はこれで終 123 UNIX MAGAZINE 1991.2
FreeSoftwa 「 e の世界 いしたことをするものではありませんが、ちょうど背中が ます。たとえは、 かゆいときのあと 1 センチに相当する機能ですので、その /test/a : M うち使う日もあるのではないかと思います。 では、ごゆるりとご覧ください。 と入力すれば、ヘッダでも本体でもどこかに、、 tes€' や 、、 Test" という文字列をもった記事すべての表示をあと回 己事選択レベルのコマンド しにすることができます。あるいは、 S セープ先 /test/a: s testart W セープ先 と入力すれば、同様にしてどこかで、、 test 〃といっている セープ用コマンド。、、 s セープ先〃、、 w セープ先〃と同 しですが、呼び出されるシェルか環境変数 SHELL で指 記事は全部、 - 、、 testart" に書き込まれますし、 定したものになります。 /test/aK: s testart ! ! コマンド シェルエスケープ。これは ! の特別版で、シェル呼出し とすれば、 $/test/a:s testart" という行が局所削除ファ にはちがいないのですが、現在ディレクトリが % P にな イルに加わり、以後そのニュースグループにアクセスする ります。 たびにそのコマンドが実行されることになります。なお、 、、厂 / 〃はすべての記事を指定したのと同しになります。 (Verbose restart) 全ヘッダの表示。基本的には R と 己事範囲指定コマンド群 同しで現在記事を再表示するコマンドですが、一 h スイツ 複数記事に対するコマンド実行。上記のコマンドに似て チによって隠れていたヘッダも全部姿を現します。 いますが、こちらのはうはパターンではなく記事番号で / パターン / 修飾子 . コマンド群 記事を指定します。 パターン合致記事に対するコマンド実行。これは、、 / パタ 指定方法は、 ーン / 修飾子〃の拡張で、それでみつけた記事に一連のコ マンドをまとめて実行してしまおうというものです。 己事 こで、ちょっと修飾子のおさらいをしておきましよう。 己事ー記事 ( 修飾子なし ) サプジェクト・ヘッダを走査する。 ヘッダ全部を走査する。 h a 記事全体を走査する。 r すでに読んだ記事も走査する。 c 指定パターンの大文字と小文字を区別する ( デフォ ルトは区別なし ) 。 これらに加えて、、 K クという修飾子が使えます。修飾子 K は、このあとに説明する K コマンドとは ( 意味は似ていま すが ) 異なるものです。これを、、 / パターン / ' ′のあとにつけ 削除記事の指定。 k コマンドは、現在記事と同しサプジ ると、それ全体 ( 、、 K 〃自身を除く ) が局所削除ファイルに追 ェクトをもつ記事をすでに読んだことにしてしまうコマ 加されて、削除などの対象となる記事を規定することにな ンドです。前回の説明で、くれぐれも大文字をタイプし ります。 ( 詳しく ( ゞ K コマンドを参照してください ) 。 てしまわないようにと書いたのは、この K コマンドがあ るからです。これをタイプすると、今ある記事を表示し 己事に対して何かをおこなうコマンドを添えてやると、 パターンが見つかった記事全部に対してそれが実行され ないだけでなくサプジェクトが次に述べる局所削除ファ - 三ロ で、、、記事〃には記事番号、 〃 ( 現在記事 ) 、、ゞ ( 最後 の記事 ) が使えます ( ただし、、、 $ コマンド群 ' を実行し ようとすると、、ゞをタイプした時点で最後の記事を読 みにいってしまうので、注意してください ) 。たとえば、 〃は最初の記事から現在記事までのサプジェクト を全部表示します ( いちばん若い記事番号が実際には何 であろうと、これでうまくいきます ) 。 1 三ロ 85 UNIX MAGAZINE 1991.2
連載 / てくてぐ 1 び 22 脚注記号としては、次の 9 種類が用意されています。 1 2 3 4 5 6 7 あえて記号て表せは、 {\tt equation} カウンタの値を ふつう、 eq Ⅱ ati 。 n 環境の数式番号は次のように出 力されます。 2 工 / 十リ 2 ( 4 ) コマンドの再定義たけで、次のように変えること もできます。 2 工十 2 ( 式 5 ) $\fnsymbol{equation}$ になります。 equation カウンタの値をあえて記号で表せば、 なります。 本に カウンタの値が 1 ~ 9 以外になっていると、“ ! Counter too 1 矼 ge ・ ' というエラーになります。 カウンタのなかよしコマンド chapter に 0 よ \thechapter 、 footnote には \thefootnote というように、カウンタに 0 よカウンタ 名の前に \the か付し、たコマンドが対になっています。 このコマンドは、対応するカウンタの値を出力する ために使うものです。ふつう、 \thecounter コマン ドは "\arabic{counter} ”というふうに定義されて います。 マクロのなかでは、 \thecounter コマンドを使って カウンタの値を出力するようになっていますから、 のコマンドを再定義するだけで次のようなことができ ます。 \setcounter{equation}{3} ふつう、 {\tt equat 土。 n } 環境の数式番号は 次のように出力されます。 \begin{equation} \end{equation} コマンドの再定義だけて、次のように 変えることもてきます。 \renewcommand{\theequation}% { 式 \arabic{equation}}% \begin{equation} \end{equation} 134 \thecounter コマンドをドキュメントの途中で再定 義することはあまりないはすてすから、フ。リアンフ・ルで 再定義するほうがいいでしよう。 カウンタいろいろ こまでの例のほとんどでは、数式番号を出力する equatio Ⅱカウンタを使ってきました で通常用意されているいくつかのカウンタを紹介して おきましよう。 このほかに図表番号、ページ番号などを管理してい るカウンタもあります。これらについては、関連する コマンドを紹介するとき冫ゴ原に説明することにします。 セクション番号 各セクション付けコマンドには、それぞれ対応する カウンタが用意されています。カウンタの名前はどれ もセクション付けコマンドからバックスラッシュを除 いたものになっています。 part chapter sect1011 subsection subsubsection p aragraph subparagraph ート番号 章番号 節番号 小節番号 小々節番号 小々々節番号 小々々々節番号 これらのセクション・カウンタは、それそれの上位 のセクション単位のカウンタが増えるときにリセット されます。ただし、 part カウンタはそのほ力、のカウン タをリセットしません。 セクション番号を出力する \thecounter コマンド は、ふつう次のように定義されています。 UNIX MAGAZINE 1991.2
連載 / てくてぐ 1 22 アノレフアヘット 英字では、 1 を A 、 2 を B 、 3 を C 、 のように表わします。 これにも 2 つのコマンドがあり、 \ alp コマンドは 小文字のアルファベット、 \A1ph コマンドは大文字の アルファベットを出力します。 {\tt equat 土 on } カウンタの値を アルファベットにすれは、 \alph{equation} あるし、は \ AI { equat 土 on } に なります。 カウンタの値を知りたいなぁ カウンタの値を出力するには、特別なコマンドを使 います。カウンタは「値」しかもっていませんから、そ れを数字として表現してあげなけれまならないので。 数字といってもアラビア数字だけじゃありませんよ。 ローマ数字や、英字や、ちょっと特別になりますが記号 で表したりすることもあります。 こでは、 eq Ⅱ atio Ⅱカウンタの値が 3 のときを例 に挙ずながら各コマンドの使用方法を説明します。 アラビア数字 カウンタの値をアラビア数字で出力したいときには、 \arabic コマンドの引数にカウンタを指定します。 現在の { \ tt equation } カウンタの値は、 \arabic{equation}€す。 ・・・ 26 を Z equation カウンタの値をアルファベットにすれば、 c あるいは C になります。 カウンタの値が 0 以下だったり、 27 以上になってい る場合は該当するアルファベットがありませんから、“ ! counter t00 large. ' というエラーになります。 記号 脚注番号の代わりに、ときどきダガーい ) のような 記号を使うことがあります。 このために用意されているコマンドが \fnsymbol コ マンドです。 fnsymbol とは "footnote symbol" の 意味で、カウンタの値に応じて脚注で使用される記号を 出力します。ただし、 \fnsymbol コマンドは数式モー ドでしか使用できません。 現在の equation カウンタの値は、 3 です。 \arabic コマンドではカウンタ値が 0 のときには “ 0 ”と出力しますし、負の数であればマイナス記号を 付けて出力します。 ローマ数字 ・・・・てす牙 ローマ数字の表記は、 i 、 111 、 IV 、 これを出力するコマンドは 2 種類あり、 \ て。 m コ マンドでは小文字のローマ数字、 \Roman コマンドでは 大文字のローマ数字が出力できます。 {\tt equation} カウンタの値を ローマ数字て表すと、 \roman{equation} あるし、は \Roman{equation} に なります。 11 、 、ミ煢 equation カウンタの値をローマ数字で表すと、ⅲあ るいは III になります。 ローマ数字では、カウンタの値が 0 以下のときには 何も出力されません。 illustration•、沼卓児 133 UNIX MAGAZINE 1991.2
てくてくÉX 今いくつ ? 亀 : もしもし、亀之助てす。 H : こんにち 0 亀 : I △ TEX てえてもらいたいことがあるの。ちょっと 急ぎなんだ。 H : どうしたの ? 亀 : 友達から訊かれたんだけど、 最初の \chapter コ では、説明を始める前に亀之助くんに返事のメール てほしかったてす才 なら、近くにある「 c 五 apter カウンタ」にも目をとめ ったようです。でも、索引で \chapter を見つすたの い TEXbo 。 k から自分のやりたいことをうまく捜せなか 亀之助くんはまだ I に慣れていないのか、 あげれれ、いのてす。 の場合、章番号を管理しているカウンタの値を変更して と呼 0 るパラメータが対応します。亀之助くんの質問 のコマンドには、それそれカウンタ (counter) ありますね。こんなふうに自動的に番号を生成する 番号や節番号を 1 以外の数から始めたいことがよく ドキュメントを分担して作成しているときなど、章 てあげる。ちょっと待っててれ H : 意外に簡単だから、どうすれれ、いかメールてえ てもみつからなくて は「章」っていう項目はないし、 \chapter で調べ 亀 : いちおうれでも、分からなかったんだよ。索引に H:IMb.X のマニ、アルは調べた ? とか途中の番号にしたいんだって。 マンドで、「 Chapter 1 」ではなくて「 Chapter 7 」 130 を出すことにしましよう。 藤浦はる美 To : turtle Subject: カウンタ LaTeX は、章番号を chapter という名前の カウンタて管理しています。 カウンタは、章番号のほかにページ番号や セクション番号なんかにもあるんてすよ。 \chapter コマンドの前に \setcounter{chapter}{6} と指定すると、次の \chapter コマンドて "Chapter 7 " と出力てきます。 設定した数 + 1 になることに注意してね。 harumi カウンタ い (IbX には、セクション付けコマンドのように自動 的に数字を生成するコマンドがあります。番号管理ま でしてくれるといえば、ほかにも equation 環境や enumerate 環境などが思い浮かぶでしよう。 これらのコマンドや環境には、それそれ対応するカ ウンタがあり、その名前はたいたいコマンド名からハ ックスラッシュを除いたものになっています。たとえ ば、章見出しを出力するのは \chapter コマンドて一茆 が、章番号を管理しているのは chapter カウンタで す。また、 equat 土 0 Ⅱ環境で使用するカウンタの名前は equation てす。ただし、出力される番号が単一のカウ UNIX MAGAZINE 1991.2
連載 UNIX Communication Notes 齊藤明紀 / 山口英 U N Ⅸ上のネットワーク・アプリケーション FTP ( 後編 ) ftp の解説は今回で終り、 NFS に移っていきます。ま 回 put した例です。格納するファイル名として、 a 、 a. 1 、 す、 ftp の解説の続きです。 a. 2 、 a. 3 、 a. 4 が使われています。 なお、メッセージの最後のピリオドは文末を表すもので /usr/ucb/ftp のコマンド ( 続き ) あり、ファイル名の一部ではありません・・・・・・紛らわしいで すね。 sunique は前回説明したトグルコマンドの 1 つですか sumque ら、投入するたびに store unique モードがオン / オフし サーバーに対する STORE UNIQUE のトグルをお ます。 こないます。デフォルトでは、 put や mput コマンドに対 rumque して STORE コマンドが SERVER-FTP に送られます が、これを STOU コマンドに変更します。これによって、 sunique から類推できるのではないかと思いますが、 re- 指定した名前の ( 指定しなければローカルファイルと同し ceive unique をおこなうトグルコマンドです。 get や 名前の ) リモートファイルがすでに存在していた場合、上書 mget で受信するファイルがすでに存在していた場合、新 きせすに異なる名前で格納されるようになります。どのよ たなファイル名で格納します。名前の付け方は STOU と うな名前になるかは SERVER-FTP に依存しますが、 同しく、 UNIX (/etc/ftpd) の場合は、 ファイル名 . 数 ファイル名 . 数 で、数もやはり 99 までです。 が使われます。指定された名前のファイルがすでにあった quote とき、その名前の後ろにピリオドと 1 から始まる数を追加 したファイル名を試します。ただし、ファイル名 . 1 からフ quote コマンドの引数は、コントロール・コネクション ァイル名 . 99 までのすべてが存在していた場合にはエラー を用いてそのまま SERVER- FTP に送られます。これ となり、転送はおこなわれません。このとき、 は、 /usr/ucb/ftp がサポートしていない SERVER FTP の機能を利用するためのものです。 452 Unique file name cannot be created. リスト 2 を見てください。 というエラー・メッセージが返ってきます。 ます、 site syst で SYST コマンドを送っています。 リスト 1 を見てください。これは、 a というファイルを 5 れで、 ftp の system コマンドはしつは SYST コマンドを 48 UNIX MAGAZINE 1991.2
LJN Ⅸ流プロクラミング 4 ・・といいたいのですが、そう簡単にはいきません。次 のように変史して試してみてください。 % cat comline # ! /bin/sh echo $ 1 $ 2 $ 3 $ 4 $ 5 $ 6 $ 7 $ 8 $ 9 $ 10 $ 11 $ 12 % comline a b c d e f g h i j k a b c d e f g h 土 a0 al 1 アクセスできるようになります。次の例を見てください。 で、ある処理をおこなえば 10 番目以降の引数に対しても だし、 10 番目以降の引数を忘れてしまったわけではないの B シェルは引数を合計で 9 個までしか扱えないのです。た います。これでは、 10 個以上の引数は渡せません。しつは、 いません。 $ 10 と書くと、 $ 1 の値と 0 が続けて出力されて 10 番目 ( j ) 以降の引数については、正しい値が返されて % cat comline # ! /bin/sh shift % comline a b c d e a b c d e f g b c d e f g h echo $ 1 $ 2 $ 3 $ 4 $ 5 $ 6 $ 7 $ 8 $ 9 echo $ 1 $ 2 $ 3 $ 4 $ 5 $ 6 $ 7 $ 8 $ 9 h i 1 」 f g h i j shift というシェルの内部コマンドを実行すると実行則 に $ 2 だった値が $ 1 に変わり、そのままではアクセスでき ない $ 10 にくるはすだった j という値が $ 9 としてアクセ スできるようになりました 1 。一般に、シェルを用いてコマ ンド行引数を処理する際には、この shift コマンドと組み 合わせてすべての引数を処理します。 もう 1 つ重要な点は、引数がいくつ指定されたかという 値です。これを調べるには # という変数の値、つまり $ # を使 います。 cat comline # ! /bin/sh echo $ # shift echo $ # ん comline a b c d e 7 a b c d e f g 6 b c d e f g 124 echo $ 1 $ 2 $ 3 $ 4 $ 5 $ 6 $ 7 $ 8 $ 9 echo $ 1 $ 2 $ 3 $ 4 $ 5 $ 6 $ 7 $ 8 $ 9 f g B シェルを用いてコマンド行で指定された引数を処理す るには、これまでに述べてきた、、 $ 数字〃、、 shift" 、、 $ # 〃の 3 つを組み合わせますが、実際にコマンドが実行される際に は引数の数が・ - ー - ・定でない場合が多いはすです。そのような ときには、引数が残っているかどうかをチェックしながら すべての引数を処理します。これを簡略化すると、次のよ うになります。 % cat comline # ! /bin/sh while [ $ # ー戚 0 ] do echo $ 1 shift done % comline a b c 上の例ではコマンド行で a 、 b 、 c 、 d 、 e 、 f 、 g という 7 つの引数か指定されていますから、 $ # の値も、、 7 〃となっ ています。 shift を用いて位置パラメータをその後ろにシフ トすると、 $ # の値も 6 に減っています。 while を用いた里 このプログラムは、コマンド行でえられた引数を 1 行 に 1 っすっ順番に出力するものです。ここで用いている while はシェルの制御構造の 1 つで、次に指定されたコマ ンドの実行結果が真 ( 終了ステータスが 0 ) のあいだは do から done のあいだを実行します 2 。 while では do を含め て done までのコマンドが省略できますが、その場合は while の直後のコマンドの実行結果が偽となるまで実行を 繰り返します。 while のあとにコマンドがくるということから分かると 田いますが、 while の直後の、、 [ 〃という記号はシェルで数 式を比較するための印ではなく、コマンドの 1 つです。 /bin/[ は名前こそ違いますが / b ⅲ / test と同しコマンド で、シェルで各種の条件判断をおこなうために利用されま す 3 。 1 shift の後ろに数字を指定し、いくっすらすのかを指定できるシステムもありま す。 2 1990 年 11 月号でも while は出てきましたわ。 UNIX MAGAZINE 1991.2
F 「 eeSo 代 wa 「 e の世界一⑩ NEWSPOSTER クロ きますが、あらかしめ定義ファイルに設定しておくのが普 マクロ定義は rn の使用中に & & コマンドを用いてもで 解釈させるためのものです。 タイプしたあるキーシーケンスを、別のキーシーケンスに rn のマクロは、原則としてコマンドを入力できるときに C/usr/spool/mail/%L] CALL が画面に表示されます。 、こに新しいメールが届くと、 MAIL- 指定します。 郵便箱。メールが届いているかどうかを監視する場所を MAILFILE その他 Cinews -h く % h] 使うべきシェルプログラムを設定します。 キャンセル用プログラム。記事をキャンセルするときに CANCEL いて投稿するときに呼ばれます。 [Pnews -h %h] 記事投稿プログラム。 F や f コマンドで、関連記事を書 通だと思います。 rn は起動時に % /. rnmac か環境変数 / C %Ckn=[ap] ?%(%"\nAre you sure to cancel this article? "=ACYy] ?C: 既 ) :h) この場合、現在モードが記事選択レベルかべージャレベ ルのときに、、 C 〃を入力すると ( キャンセルを意図してい る ) 、、、 Are you sure to cancel this article? 〃という質問 が画面に現れ、 Y か y で始まる文字列を入力すればそのま まキャンセル、それ以外の文字列だと画面が書き直される だけになります 10 。上記以外のモードでは C というコマン ドは存在しないので、代わりにヘルプメッセージが出るよ うになっています。 入力文字列は定義を読んだ段階で評価されてしまいま すが、この例で分かるとおり、置換文字列はマクロの実行 時に評価されます。そのため、値か動的に変わる % 置換と いう仕掛が活かせるのです。 さきほど、定義の右側にある文字列はマクロ展開されな 10 画面の書き直しに特別な意味はない。ほかのコマンドを思いつかなかっただ け。 84 、 RNMACRO に指定されているファイルを読み、以後はそ コマンドとスイ、、チ ( 補遺 ) 解釈されません。 いう意味で、、、 w save ー dflt 〃と書いても字義どおりにしか ) クは別のマクロを参照しろと いうまでもなく @s s (@save_dflt-) @w w (@save_dflt つ @save-dflt p/junkbox 次の書き方もできます。 意識してマクロ展開をさせるのはかまわないということで、 いと述べました。これは定義のループを避けるためですが、 定義できます。 当にいいの ? 」と確認させたけれは、次のようなマクロが 別の例として、キャンセル・コマンドを叩いたときに「本 ファイル名展開も使用可能です。 ュ展開、制御文字展開が適用されます。もちろん、、、 ~ 〃や マクロ定義にも % 置換、 % 置換をとおしたバックスラッシ 入力したときに y コマンドと解釈されるようになります。 この例では、、、 y 〃を入力したときに n コマンド、、、 n ' ′を をしても、無限ループには陥りません。 対するコマンドと仮定されているので、以下のような定義 は定義の一部になります ) 。右側に置かれた文字列は rn に 行と、、 # 〃で始まる行は、読みとはされます ( 途中にある、 書式を & & に続けて書いてやれはだいしようぶです。空白 のように書きます。実行中に定義する場合も、これと同し く入力文字列〉く置き換わるべき文字列〉 1 行に れにしたがって入力文字列を解釈します。定義の仕方は、 コマンドとスイッチに関しては前回にも触れましたが、 全部をお話ししたわけではありません。そこで、 遺として残りのいくっかを説明します。 まあ、だいたいた UNIX MAGAZINE 1991.2
連載 / てくてく 22 最初の \setcounter コマンドのように指定すると、 右括弧 ( } ) の後ろの改行が単語間スペースとして出力 されてしまいます。引数をもつコマンドの後ろの空白文 字には注意してください。 2 つ目の \setcounter コ マンドのように右括弧の直後にパーセント記号 ( % ) を 指定すれば、余計なスペースカ啌きません。 \setcounter コマンドの月リにもスペース文字力、あ りますが、行頭のスペースは無視されるので出力され ません。 カウンタ値を増やそう \addtocounter コマンドは、カウンタの値を一定 の数だけ増やすときに使用します。 \addtocounter コマンドの引数も 2 つで、最初の 引数にはカウンタ名、 2 つ目の引数には整数を指定しま す。 2 つ目の引数に負の数を指定すれま、カウンタの値 を減らすことができます。 \addtocounter コマンドもグロー / くノレな旦言て茆 \addtocounter{ くカウンタ名〉 } { く整数〉 } 「てくてく \TeX\footnote {UNIX MAGAZINE の連載。 } 」は もう 2 周年を迎えようとしています。 \addtocounter{f00tnote}{—2}% \LaTeX book\footnote{ 「 \LaTeX : The Document Preparation system 」 邦訳本も順調な売れ行きをみせ、 そろそろ引退を考える五 arum 土て・す。 } の 3UNIX MAGAZINE の連載。 2 「 14TEX ・ The Document Preparation system 」 子どものカウンタのリセット \setcounter や \addtocounter コマン日よ、手旨 定した以外のカウンタ値に影響することはありません。 \stepcounter は指定したカウンタの値を 1 ったけ増 「てくてく rIbX3 」はもう 2 周年を迎えようとして います。い T 砂。。 k2 の邦訳本も順調な売れ行きをみ せ、そろそろ引退を考える harumi です。 132 やすコマンドですが、そのとき一緒に子どもになって るカウンタのリセットもしてくれます。 \stepcounter コマンドもグローバルな宣言で、次 のように指定します。引数に指定したカウンタの値を 1 っ増やし、その子供や孫などにあたるカウンタをリセッ トするすで扎 \stepcounter{ くカウンタ名〉 } 冫欠の例で、 \addtocounter コマンドで section カ ウンタの値を 1 つ増やしたときと、 \stepcounter コ マンドを使用したときの subsection カウンタへの影 10 月に私は、このセミナーをするための \subsection{ セミナーの準備 ( 1 ) } \stepcounter{section} セミナーて講師を務めました。 12 月 4 日に、私ははじめて社外の \ subsecti 。 n { 12 月 4 日のてきごと } 響をみてください。 3.2 12 月 4 日のてきごと かかってしまった。 OHP づくり。これも結局夜中まて そして、前日にはカラーコビーを使って \subsection{ セミナーの準備 ( 2 ) } \addtocounter{section}{l} けっこうたいへん テキストを作成しましたが、これか 4.1 セミナーの準備 ( 1 ) を務めました。 12 月 4 日に、私ははじめて社外のセミナーで講師 UNIX MAGAZINE 1991.2 義するときロよたいへん便利てす。 ることはめったにありませんが、新しいコマンドを定 原稿ファイルのな力、で \stepcounter を直接使用す くり。これも結局夜中までかかってしまった。 そして、前日にはカラーコピーを使って OHP づ 5.2 セミナーの準備 ( 2 ) を作成しましたが、これがけっこうたいへん。 10 月に私は、このセミナーをするためのテキスト
連載 リストー UNIX Communication Notes ftp>sunique Store unxque on. ftp>put a ↓ つ 00 PORT- command successful ftp>put a ↓ 731 bytes sent in le ー 06 seconds ( 7. le + 05 Kbytes/s) つ 26 Transfer complete (unique 土工 le name : a,3) 450 、 Opemng BINARY mode data connection 土 0 て a. 3 200 ~ PORT, command successful ftp>put a ↓ 731 bytes sent in 0.02 seconds ( 36 Kbytes/s) つ 26 Transfer complete (unique AfiIe れ e : a. 2 ) ま 50 Opening BINARY mode data connection f0 て a. 2 200 PORT command successful ftp>put a ↓ 731 bytes sent in 0.02 seconds ( 36 Kbytes/s) つ 26 Transfer complete (unique file 4 e :a.IY 150 Opening BINARY mode data connection f0 て .1 200 PORT command successful ftp>put a ↓ 731 bytes sent in le ー 06 seconds ( 7. le + 05 Kbytes/s) ー 226 Transfer complete (unique file name :a) 150 Opening BINARY mode data connection fO で a 731 ? 26 加 0 Transfer complete (umque file name ね . 4 ) 。 : 150 Opening BINARY mode data connection 土 0 て a,4 PORT command successful bytes sent in 0.02 seconds ( 36 Kbytes/s) サーバーに送るものであることが判明します。 次に、 site help でこのサーバーのもつ拡張機能を問い UNIX MAGAZINE 1991.2 インターフェイスです。 1 /bin/sh や /bin/csh の umask コマンドと同しで、 umask システムコールへの この例では、デフォルトの設定が 027 であることを知 い合わせたりするコマンドです。 なかの Server-DTP) に対して umaskl を設定したり問 合わせています。 SITE UMASK は、 SERVER-FTP( の かります。続いて、 UMASK サプコマンドの使い方を問い ンド chmod 、 umask 、 idle 、 help をもっていることが分 コマンド help によって、このサーバーは site のサプコマ ーのローカルな拡張を呼び出す FTP コマンドです。サプ site コマンドはサーバ 合わせます。前回説明したように り、これを 022 に変更しています。 そして type a を送り、アスキーモードへの変更を試み ています。ところが、 USER FTP は image モードのまま です。当り前といえば当り前ですが、 ftp の ascii コマン ドでは SERVER-FTP に TYPE A を送るだけではな く、 USER ー FTP (/usr/ucb/ftp) の状態も同期して ASC Ⅱに変えているわけです。 quote コマンドでは、データコネクションを使用するよ うなコマンドは送れません。送っても ftp がデータコネク ションを開かないので、リスト 2 の最後の部分のように工 ラーになります。 quote コマンドが追加されて困るのは、 quit コマンドを q と省略できなくなったことです。先頭 2 文字が同しです 49