0
for i in {1...50000}; 
do 
  $(sudo lsof -Pni | cut -f 1 -d ' ' > fd_history/$(date +"%H-%M-%S")); 
done

它应该将 lsof 的输出通过管道传输到以当前时间戳命名的文件中(只有每个 lsof 输出行的第一个标记)。每个 lsof 需要几秒钟的时间来运行,因为有很多文件打开。

循环在第一次迭代后退出,而不是继续运行 lsof。为什么?(顺便说一句,我将这一行直接输入到我的控制台中。)

4

2 回答 2

2

你有一个额外的点:{1...50000}应该是{1..50000};第一个没有以任何方式扩展。

于 2013-11-02T02:42:01.537 回答
0

使用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
于 2013-11-02T02:39:37.367 回答