アプリ版:「スタンプのみでお礼する」機能のリリースについて

あるファイルが最終行になるまでに繰り返し実行するシェルを作りたいです。
とりあえずファイル名を1行ごとに5行程度入れてあるファイル「filemei」を作成しました。
そのファイルからファイル名を順番に取り出し、lsをするものを作ってみたのですが、うまくいきません。
とりあえず、繰り返しにはwhileやforeach、ファイルの読み込みにはawkを使ってみたのですが...
どなたか分かるかたがいれば教えて下さい。
無知なので、質問自体が訳が分からない場合があると思いますが、ご勘弁願います。

A 回答 (3件)

とりあえず、


set a = $<
で、標準入力からの入力が一行、変数aに入ります。
例えば入力が
abcde 12345
であれば
$a = ( abcde 12345 )
となります。
abcde, 12345 はそれぞれ
$a[1], $a[2]
で参照できます。
ですから、
 while ( 条件 )
  set line = $<
  $line を処理
 end
のようにすれば、標準入力からの入力を一行ずつ処理できます。
これを例えばcommandというスクリプトにして
command < file
のようにすれば、指定したファイルからの入力を一行ずつ処理できます。
    • good
    • 0
この回答へのお礼

大変詳しい回答どうもありがとうございました。
勉強になりましたm(..)m

お礼日時:2001/09/18 09:32

失礼致しました。

Cシェルと書いてありましたね。
Cシェルはあまり使わないもので・・・。

以下のようにすれば良いようですよ。

#!/bin/csh
foreach i (`cat filemei`)
ls $i
end
    • good
    • 1
この回答へのお礼

すごくシンプルな回答ありがとうございます。
まさしくこの方式で作成したいと思います。
助かりました。

お礼日時:2001/09/18 09:34

sh で書けばこんな所?



#!/bin/sh
for i in `cat filemei`
do
ls $i
done

このシェルスクリプトをtest.shと名前を付けて保存したならば、

chmod +x test.sh

として実行権を与えておけば、

test.sh

と入力しただけで実行できます。

的外れ??
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています