
シェルの初心者です。よろしくお願い致します。
cシェル(csh)で、リストをforeachで1行ずつ取得しているのですが、「*(アスタリスク)」の値があると「一致しません」とエラーで落ちてしまいます。
「*(アスタリスク)」も正常に読んで、ループを回すことはできないのでしょうか?
foreach FILE ( \"`/bin/cat リストファイル名`\" )
リストは「|(パイプ)」区切りにしてあります。
foreachで一行ずつ、読んでループしています。
ご存知の方は、お力をお貸し下さい。
よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
csh縛りというのは宿題か何かですか?そうじゃないなら、cshは機能が貧弱なのでプログラム的な処理には向きません。
shを使いましょう。#!/bin/sh
while read FILE
do ....
done < リストファイル名
>リストは「|(パイプ)」区切りにしてあります。
例えば、リストファイルの中身が、
A|B|100
X|Y|123
の様になっているとすると、
#!/bin/sh
IFS="|"
while read F1 F2 F3
do ....
done < リストファイル名
で、各フィールドを別々に取り出せます。
どうしてもcshでしないといけない理由があるなら、set noglobで*や?のファイルマッチを無効にすればエラーは出ません。
#!/bin/csh
set noglob
foreach FILE (`cat リストファイル名`)
echo "$FILE"
end
ただ、おわかりかと思いますが、これは「1行ずつ読んでいる」訳じゃないです。データの途中に空白やタブが無いという前提で同じ動作になりますが。
回答ありがとうございます。
宿題というのか、うちの会社がそういう風潮になっているもんですから・・・。
set noglob
で出来ました。
感謝です。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
UWSCの終了の仕方
-
VBAでの一時停止と再開の方法
-
Do whileでExitせず、ループの...
-
テキストボックスの名前に変数...
-
VB.NETでFTPプログラム
-
xmplayの使い方
-
C言語でファクト関数を使わずに...
-
csh foreachで「*」でエラ...
-
ListBox 複数選択 で オートフ...
-
ループフリー
-
UWSCに制限時間を付けたいです
-
プログラミングで難しいと感じ...
-
EXCEL VBA(初心者)印刷ルー...
-
CSVファイルの特定の行だけを読...
-
エクセルの当番表を作っていま...
-
vb.netからエクセル関数書き込み
-
VBAで3秒だけ時間を止めたい
-
Excel VBAでIf 条件式 then か...
-
流れ図(フローチャート)が分か...
-
Dim flag(4) as boolean で配列...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
画面を強制的に再描画させる方法
-
UWSCの終了の仕方
-
DOSコマンドのループ内のTIMEコ...
-
範囲指定したセルを1つずつ飛...
-
VBAでの一時停止と再開の方法
-
Escキーを押すと、中断する時と...
-
乱数の桁数指定、または範囲指定。
-
イベントの発生を待つ
-
流れ図(フローチャート)が分か...
-
UWSCに制限時間を付けたいです
-
vb.netです。2次元配列の要素を...
-
VBA for i=1 to lastrow
-
DoEventsが必要な理由について
-
ループフリー
-
VBA Boxが空白の場合のメッセー...
-
VBA ニュースタイトル取得
-
エクセルの当番表を作っていま...
-
Javaの質問です。 この問題の答...
-
テキストボックスの名前に変数...
-
CSVファイルの特定の行だけを読...
おすすめ情報