Я не смог воспроизвести это в оболочке Bash:
# non-empty file1
$ echo 1 > file1.txt
$ cat file1.txt >> file2.txt >> file1.txt
cat: file1.txt: input file is output file
1 файл создается с 0 длинами, но затем я получаю вышеупомянутое сообщение:
$ ls -l
total 4
-rw-rw-r-- 1 saml saml 2 Sep 10 19:35 file1.txt
-rw-rw-r-- 1 saml saml 0 Sep 10 19:35 file2.txt
На основе ответа @jlliagre я не уверен, почему я получаю эти 2 файла. Это может зависеть от cat
реализация.
@jlliagre обновил его ответ для показа этого кода, который он заявляет как эквивалентный:
>> file2.txt ; cat file1.txt >> file1.txt
Таким образом, теперь я знаю, почему я получаю пустое file2.txt
. Эта нотация законна:
>> file2.txt
И создаст пустой файл.
Способ сделать это - написать небольшой Бэш-скрипт, который:
$arg1
ps | grep
или ps | awk
$arg2
ps -eo pcpu, cmd | egrep $arg1 >> logfile-$arg2
$arg2
)ps
Для этого можно использовать утилиту ps
.
Чтобы увидеть процент использования процессора в течение жизни одного процесса, можно сделать:
ps h -p $PID -o %cpu
Чтобы увидеть процент использования процессора всеми запущенными процессами, можно сделать что-то вроде:
ps ax -o pid,%cpu,comm