在我的鱼壳, 我在用鱼命令定时器自动显示每个命令执行后的持续时间。这是一个很棒的功能,我推荐它。
现在我想要除此之外类似的东西:行数,即在执行每个命令行后,打印到 stdout 和/或 stderr 的行数也应该打印到 stdout。
例子:
代替
> cat /etc/mpd.conf
pid_file "/run/mpd/mpd.pid"
db_file "/var/lib/mpd/mpd.db"
state_file "/var/lib/mpd/mpdstate"
playlist_directory "/var/lib/mpd/playlists"
我想看看
> cat /etc/mpd.conf
pid_file "/run/mpd/mpd.pid"
db_file "/var/lib/mpd/mpd.db"
state_file "/var/lib/mpd/mpdstate"
playlist_directory "/var/lib/mpd/playlists"
[ 4 lines ]
一些笔记:
- 有一些手动解决方案来打印命令的输出行数这里,但我希望这是在我的鱼配置中实现的永久功能。
- 我不想执行该命令两次(出于明显的原因,例如缺乏幂等性等)
- bash(而不是fish)的解决方案可能指向正确的方向。
命令计时器与执行命令行后触发的 postexec 事件一起使用,但这并不能完全解决我的问题,所以我需要一种方法。
答案1
尝试替换cat /etc/mpd.conf
为cat /etc/mpd.conf | tee /proc/self/fd/2 | echo -e "\n[ $(wc -l) lines ]"
如果您无法使用 /proc/self/fd/ ,请尝试将其分成 2 个命令或使用 && 运算符进行类似操作cat /etc/mpd.conf && echo "Number of lines: $(cat /etc/mpd.conf | wc -l)"
从厕所手册页:
-l, --lines 打印换行数