svlogファイルを日付でフィルタリングし、結果をスペースに分割したいので、日付を入力すると機能しません。下記のスクリプトをご覧ください。問題は次のコマンドにあります。
ligne=`cat /var/log/svlog | grep "\$day"`
、 "\$day" は考慮しません。また、この「^\$day」、この「$day」、およびこの「${day}」を試しましたが、結果は同じでした。
#!/bin/bash
echo SCRIPT-LOG
echo enter date
read day
ligne=`cat /var/log/svlog | grep "\$day"`
$ligne >> log1.txt
awk '{split($ligne,numbers," ")} END {for(n in numbers){ print numbers[n] }}'>lo
"Monit_Sub.sh" 11 lines, 211 characters
$ sudo ./Monit_Sub.sh
SCRIPT-LOG
enter date
Apr 26
./Monit_Sub.sh: line 8: Apr: command not found
$
答え1
変化
ligne=`cat /var/log/svlog | grep "\$day"`
到着
ligne=$(grep "$day" /var/log/svlog)
$ligne
toのコンテンツを提供するにはawk
:
echo "$ligne" | awk ...