![pidファイルをキャプチャすると%が表示されますが、その理由と意味は何ですか? [コピー]](https://linux33.com/image/93888/pid%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E3%82%AD%E3%83%A3%E3%83%97%E3%83%81%E3%83%A3%E3%81%99%E3%82%8B%E3%81%A8%EF%BC%85%E3%81%8C%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81%E3%81%9D%E3%81%AE%E7%90%86%E7%94%B1%E3%81%A8%E6%84%8F%E5%91%B3%E3%81%AF%E4%BD%95%E3%81%A7%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
検索してみましたが、「%」は無視されました。 pidに関するすべて。
私のシステムはmacOSです。
コードは次のとおりです。
cat /usr/local/var/run/php-fpm.pid
#I got this.
7260%
#When I use vim open it. only have text "7260"
7260
なんだか教えてください?とても感謝しています。
答え1
ファイルは改行で終わらないため、Zshは逆ビデオ%
と改行自体を追加します(両方ともファイルが改行で終わらず、次のプロンプトを混乱させたり、出力を完全に失わないことを示します)。
Zsh FAQの問題3.23この問題を制御する方法の詳細については、Zshマニュアル。
答え2
Unixでは、行末がLF(\n
)で1行が欠落している場合は、1行であるかのように、現在の行の末尾に次の行が追加されます。
これがここで起こるものです。/usr/local/var/run/php-fpm.pid
ファイルにPIDがある行があり、その行はLFで終わりません。ほとんどのシェルでは、yopuは出力とともに次のプロンプトを受け取りますが、ここでは次のようになりますzsh
。賢いaを追加し%
、\n
その行にLFがないことを示します。
例:
foo@bar% cat /proc/self/cmdline
cat/proc/self/cmdline%
foo@bar% bash
foo@bar$ cat /proc/self/cmdline
cat/proc/self/cmdlinefoo@bar$