
初めて投稿します。LINUX初心者です。
現在,下記のような処理を行うシェルを作成したいと考えておりますが、シェルをうまく読み込んでくれません。
1.あるファイル(maint_log.dat)を1行づつ読み込み
2.1列目を抜き出す
3.1行目のステータスによって分岐処理を行う
#!/bin/bsh
while read line
do
case $(awk '{print $1}' ${line})
0)
flag_status0;;
1)
flag_status1;;
2)
flag_status2;;
esca
done < maint_log.dat
cat maint_log.dat
0 180 strdevdb2_20151113.log /home/log/shell
0 180 strdevdb2_20151116.log /home/log/shell
0 180 strdevdb2_20151113.log /home/log/shell
実行するとcase $(awk '{print $1}' ${line})の箇所で「bad substitution」と
表示されてしまいます。
いろいろと調べたのですが,何が悪くて実行できないのかわららず困っています。
どうか、宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
ちょっと気になった.
まず
awk '{print $1}' ${line}
が何をしているのか大丈夫だろうか. この変数 ${line} にはたとえば
0 180 strdevdb2_20151113.log /home/log/shell
という文字列が入ることになるから, その状態で
awk '{print $1}' ${line}
を実行するのは
awk '{print $1}' 0 180 strdevdb2_20151113.log /home/log/shell
と同じことになる. だから
「awk 致命的:ファイル’0’を読み込むために開けません(そのようなファイルやディレクトリはありません)」と表示されてしまいました
ってことになるんじゃないかな.
あと, 最初の行は
#!/bin/bsh
で OK なのかな? 素の bシェルに $(...) なんてものはないんだけど.
Tacosan様
ご回答いただきありがとうございます。
先ほどTacosan様がおっしゃっているように
変数(line)にmaint_log.datの1行目を代入しても
awk '{print $1}'以下は文字列として認識しているから
処理できないということになるのかと少し前に思いつきました。
ですよね って感じです。
考えが足らずご迷惑をおかけいたしました。
さて 次はこの文字列からステータス部分(0の箇所)を
どうやってCASE文に引き渡せばいいのだろう・・・と悩み中です。
No.1
- 回答日時:
今、電車なので試せませんが、おそらくawkコマンド一式をバッククォートで囲む必要があると思います。
`awk '{print $1}' ${line})`
dorapote1969様
お忙しい中,ご回答いただきましてありがとうございます。
おっしゃるとおり「バッククオート」で囲んだのですが
「awk 致命的:ファイル’0’を読み込むために開けません(そのようなファイルやディレクトリはありません)」と表示されてしまいました。
普通に
awk '{print $1}' maint_log.datを実行すると正常に表示されるのですが・・・
どこに問題があると思いますか?
お忙しい中,大変恐縮ではございますが,ご教授下さい。
よろしくおねがいいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows11でタスクバー・スタ...
-
勝手に無変換になる
-
ホーム及びロック画面の消費が1...
-
写真をコピーしたら作成日時が...
-
オプション設定の表示
-
Windows「KB5058411」の更新が失敗
-
Windows11のデスクトップのアプ...
-
windows11、23H2用の更新プログ...
-
Windowsアップデートのダウンロ...
-
windows11 きれいなロック画面...
-
Windows11で、背景が勝手に変わ...
-
Windowsブートマネージャーの起動
-
エクスプローラのアクティブウ...
-
自作アイコンが普通のアイコン...
-
OSのWindows11のインストールに...
-
Windows11 デスクトップ アイコ...
-
「ウインドウズアップデートの...
-
Windows11 システム通知音がも...
-
w11 24H2 ISOファイルの大きさ...
-
LinuxのOSで、Adobeフォトショ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows「KB5058411」の更新が失敗
-
Windows11でタスクバー・スタ...
-
勝手に無変換になる
-
ホーム及びロック画面の消費が1...
-
写真をコピーしたら作成日時が...
-
電源を入れるとWindowsブートマ...
-
Windows11で、背景が勝手に変わ...
-
LinuxのOSで、Adobeフォトショ...
-
Arduinoのリアルタイムクロック...
-
エクスプローラのアクティブウ...
-
画面から消えたマウスの矢印探...
-
Windows11のデスクトップのアプ...
-
ウインドウズ12のことで知りた...
-
iobitのUninstaller or Geek Un...
-
自作アイコンが普通のアイコン...
-
Windows11 デスクトップ アイコ...
-
windows11、23H2用の更新プログ...
-
MS-DOS 6.22のダウンロード
-
マイクロソフトアカウントの認証
-
OSのWindows11のインストールに...
おすすめ情報