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 に答える