我读了很多init.d脚本,并且:
pid=`cat $pidfile`
Run Code Online (Sandbox Code Playgroud)
线让我伤心.我不明白为什么人们不使用:
read pid <$pidfile
Run Code Online (Sandbox Code Playgroud)
上一个示例使用符合POSIX的语法,不执行fork/ exec运行外部进程(cat).
最后的解决方案还允许在第一个换行符后跳过内容.
是否有任何带有read命令的陷阱(尽管它执行拆分为字段)?
更新.有些人使用非便携式扩展来实现shell:
pid=$(<$pidfile)
Run Code Online (Sandbox Code Playgroud)