我无法理解为什么其中一个函数可以正常工作[status-up],但另一个根本就没有输出。 [状态-REC]
pidfile
和recfile
都是/var/run/
中各自PID文件的有效路径,两者都只包含没有换行符的PID编号或其他不可打印的字符。
status-up() {
if [ -f ${pidfile} ]; then
if ps p $(cat ${pidfile}) >> /dev/null; then
printf "Upload running as PID %s\n" $(cat ${pidfile})
return
fi
fi
echo "Upload is not running"
}
status-rec() {
if [ -f ${recfile} ]; then
if ps p $(cat ${recfile}) >> /dev/null; then
printf "Receive running as PID %s\n" $(cat ${recfile})
return
fi
fi
echo "Receive is not running"
}
答案 0 :(得分:4)
cat
会挂起 - 以及许多其他程序。你的一条路径很可能是空的,因为你可以通过if
语句:
$ if [ -f ]; then echo "foo"; fi
foo
进入区块后,您会挂断电话cat <empty>
。正如@ruakh指出的那样,你应该让它工作双引变量。