当 shell 脚本文件编码不同时,我在进程名称中面临一个奇怪的、非常奇怪的行为。
场景如下:
两个文件 - caller.sh(ASCII 文本) - executor.sh(UTF-8 Unicode 文本)
# caller.sh
#!/bin/bash
/soft/executer.sh &
sleep 60
执行“caller.sh &”后,“ps”命令返回名为“caller.sh”的两个进程:
PID TTY TIME CMD
19566 pts/7 00:00:00 bash
22699 pts/7 00:00:00 caller.sh
22690 pts/7 00:00:00 caller.sh
22694 pts/7 00:00:00 ps
但是,如果将“caller.sh”编码更改为“Bourne-Again shell 脚本文本可执行文件”(保存在 Windows 框中并传输到 linux),命令 ps 开始正确显示:
PID TTY TIME CMD
19566 pts/7 00:00:00 bash
22689 pts/7 00:00:00 caller.sh
22694 pts/7 00:00:00 ps
22690 pts/7 00:00:00 executer.sh
有人可以解释编码和进程名称/bashs之间的关系吗?
ps:dos2unix没有解决问题!
谢谢