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

观看 -n3 'grep "] " '$FILENAME' | 尾-n15'

有两组 ' 引号。你想逃避内在的 ' 标志。

于 2012-09-18T10:40:44.163 回答
0

我发现它为什么不起作用, $FILENAME 末尾有一些空格导致找不到文件错误,所以我使用了这个:

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

我在另一个 Stackoverflow 问题中发现了这一点。

感谢您的回复。

于 2012-09-18T16:47:37.797 回答