for i in {1...50000};
do
$(sudo lsof -Pni | cut -f 1 -d ' ' > fd_history/$(date +"%H-%M-%S"));
done
它应该将 lsof 的输出通过管道传输到以当前时间戳命名的文件中(只有每个 lsof 输出行的第一个标记)。每个 lsof 需要几秒钟的时间来运行,因为有很多文件打开。
循环在第一次迭代后退出,而不是继续运行 lsof。为什么?(顺便说一句,我将这一行直接输入到我的控制台中。)
for i in {1...50000};
do
$(sudo lsof -Pni | cut -f 1 -d ' ' > fd_history/$(date +"%H-%M-%S"));
done
它应该将 lsof 的输出通过管道传输到以当前时间戳命名的文件中(只有每个 lsof 输出行的第一个标记)。每个 lsof 需要几秒钟的时间来运行,因为有很多文件打开。
循环在第一次迭代后退出,而不是继续运行 lsof。为什么?(顺便说一句,我将这一行直接输入到我的控制台中。)
你有一个额外的点:{1...50000}
应该是{1..50000}
;第一个没有以任何方式扩展。
使用seq
.
for i in $(seq 50000);
do
$(sudo lsof -Pni | cut -f 1 -d ' ' > fd_history/$(date +"%H-%M-%S"));
done
或者
for i in {1..50000};
do
$(sudo lsof -Pni | cut -f 1 -d ' ' > fd_history/$(date +"%H-%M-%S"));
done