0
for i in {1...50000};
do
$(sudo lsof -Pni | cut -f 1 -d ' ' > fd_history/$(date +"%H-%M-%S"));
done
它应该将输出的lsof输入一个以当前时间戳命名的文件(每个lsof输出行只有第一个记号)。由于打开了大量文件,每个lsof都需要几秒钟才能运行。为什么这个bash for循环只迭代一次?
循环在第一次迭代后退出,而不是连续运行lsof。为什么? (我正在将这条线直接输入到我的控制台。)
两点。 '{1..50000}' – Kevin
令人难以置信的是,它修复了它。 –
你可能不想'$(...)'符号;它在里面执行命令,捕获输出,然后尝试在输出中运行命令。幸运的是,你已经将标准输出发送到一个文件,所以不会有任何东西需要执行,但是删除记号可以节省一些时间(几乎不可测量,但是...)。 –