ps
で指定されたカスタム形式を使用して出力を読み取ろうとしています-o
。カスタムセパレーターを指定したいので、AIXフォーマット記述子(たとえば%p
、pid、%a
argsなど)を使用していますが、通常のフォーマットコードを使用した場合にも同じ問題が発生します。
%a
このフォーマット文字列の最後に指定すると、すべてが期待どおりに機能します。
$ echo 'while true; do sleep 1; done' > really-really-really-long-filename
$ bash really-really-really-long-filename &
[1] 31181
$ ps -p 31181 -o '%p|%a'
PID|COMMAND
31181|bash really-really-really-long-filename
ただし、%a
が最後のフィールドでない場合は、次のようになります。
$ ps -p 31181 -o '%a|%p'
COMMAND | PID
bash really-really-really-l|31181
これは、画面幅の修飾子とは関係がないようです。ここで他に何か遊んでいますか?
(GNU bash 4.1.5)