
初めて投稿します。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で質問しましょう!
似たような質問が見つかりました
- 数学 n乗はどうなったのでしょうか 1 2023/01/31 19:26
- 数学 回答者どもがなかなか答えられないようなので、考えてみました。 ∫[0,π/2]log(sinx)/( 4 2022/08/31 16:30
- 数学 log底10真数1/75 ただし、 log底10真数2=0.3 log底10真数3=0.5とする 式 2 2022/05/30 22:51
- タブレット log撮影で撮った写真について。 こんにちはカメラ初心者です、わたしは今までほとんどの写真をlog撮 3 2023/07/04 01:42
- 数学 微分方程式の積分定数について 5 2023/07/13 08:39
- 数学 対数関数のグラフ y=log(2)2(x+1)のグラフを書け 模範解答は「1+log(2)(x+1) 2 2023/07/08 01:51
- 数学 極限の計算をお願いします。 {log(2x+3)}/{log(3x+1)} のx→∞の極限値の求め方 3 2022/08/03 20:58
- 大学・短大 効用関数の微分の計算について 1 2022/06/05 11:07
- 写真 log撮影について。今まで、9割がた映像ではなく写真をlog撮影でとってきました。 映像ではlogの 3 2023/07/04 23:28
- 化学 化学が得意な方に質問です。この問題の正解を教えて欲しいです。 【問題1】Log Kowの記述について 1 2022/09/26 23:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マイクロソフトアカウントの認証
-
ホーム及びロック画面の消費が1...
-
エクスプローラのアクティブウ...
-
iobitのUninstaller or Geek Un...
-
windowsは使っていると...
-
勝手に無変換になる
-
Windows11でタスクバー・スタ...
-
写真をコピーしたら作成日時が...
-
通知領域のアイコンや文字サイ...
-
windows11、23H2用の更新プログ...
-
要件を充たしていないwindows11...
-
Windows11 デスクトップ アイコ...
-
Windowsの"legacy"ってなんです...
-
新品のパソコンをお店で買った...
-
Windows11のデスクトップのアプ...
-
Windows Media Playerを開くと...
-
windows11でクイックスキャン等...
-
Microsoftのページだけ全て「申...
-
WindowsってOSなんですか?
-
windows11 きれいなロック画面...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows11でタスクバー・スタ...
-
写真をコピーしたら作成日時が...
-
windows11、23H2用の更新プログ...
-
エクスプローラのアクティブウ...
-
勝手に無変換になる
-
ホーム及びロック画面の消費が1...
-
Windows11のデスクトップのアプ...
-
要件を充たしていないwindows11...
-
windows11でクイックスキャン等...
-
windows11 きれいなロック画面...
-
MS-DOS 6.22のダウンロード
-
Ubuntnがインストールされてい...
-
未来のWindowsってLinuxベース...
-
Windows nT系のLinux系より優れ...
-
windowsは使っていると...
-
windows 11 Pro を入れた、 自...
-
Windowsの"legacy"ってなんです...
-
Windows Media Playerを開くと...
-
「Wi-Fiアダプターへのアクセス...
-
新品のパソコンをお店で買った...
おすすめ情報