我读了很多init.d
脚本和:
pid=`cat $pidfile`
线条让我悲伤。我不明白为什么人们不使用:
read pid <$pidfile
最后一个示例使用 POSIX 兼容语法,但不执行fork
/exec
运行外部进程(cat
).
最后一个解决方案还允许在第一个换行符之后跳过内容。
有没有什么陷阱read
命令(尽管它执行分割为字段)?
UPDATE。有些人使用 shell 的非可移植扩展,例如:
如何将文本文件中的变量获取到 Bash 变量中 https://stackoverflow.com/questions/8684447/how-to-get-variable-from-text-file-into-bash-variable
pid=$(<$pidfile)
The read pid < file
方式是最佳实践出于你所说的原因:比 fork/exec 便宜得多cat
.
至于为什么这么多脚本以昂贵的方式这样做,我只能推测。可能是从其他人的脚本中剪切和粘贴的,加上缺乏对 shell 功能的了解,以及速度极快的 CPU。当有 Stack Overflow 时谁会阅读手册页? :-) 特别是 shell 手册页由于引入了所有术语,对于新手来说是一本难以阅读的参考手册。
谁说猫的无用使用是管道的特权吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)