2

フォルダ内の最新のログファイルを監視し、ログからチャットを取得する小さなスクリプトを作成しようとしています。これをtmuxパネルに表示しますが、何らかの理由でファイルが見つかりません。存在

FILENAME=server_logs/$(ls -t1 server_logs | head -n 1)
watch -n3 'grep "\] " '$FILENAME' | tail -n15' 

ファイルを実行すると、次のgrepが表示されます。server_logs/ server_log_09_18_12.txt:そのようなファイルやディレクトリはありません

しかし、私が使用する場合、 watch -n3 'grep "\] " server_logs/server_log_09_18_12.txt | tail -n15'それは機能します。だから私の質問は、なぜファイルが見つからないのですか?

4

2 に答える 2

0

$FILENAME の最後にいくつかのスペースがあり、ファイルが見つからないというエラーが発生したため、これを使用しました:

FILENAME="${FILENAME#"${FILENAME%%[![:space:]]*}"}"   # remove leading whitespace characters
FILENAME="${FILENAME%"${FILENAME##*[![:space:]]}"}"   # remove trailing whitespace characters 

別の Stackoverflow questionで見つけたもの。

回答ありがとうございます。

于 2012-09-18T16:47:37.797 に答える
0

watch -n3 'grep "] " '$FILENAME' | テール -n15'

には 2 組の ' 引用符があります。内側の ' 記号をエスケープしたい。

于 2012-09-18T10:40:44.163 に答える