今天看大名鼎鼎的abs,看到里面说在命令后面加&符号即可表示该命令后台执行。
如 sleep 10 & 在命令行的运行结果是
[1]7039 #(7039)是进程号
于是按照书中举例编写如下脚本:
#!/bin/sh
for i in 1 2 3 4 5 6 7 8 9 10
do
echo -n "$i "
done & #据说此处可以使上述循环后台执行
echo
for i in 11 12 13 14 15 16 17 18 19
do
echo -n "$i "
done
echo
上述脚本预期运行结果为 上述数字可能随机排列 即 并不一定按照顺序输出,因为第一个循环为后台执行。
但运行后发现 结果仍然按照顺序输出。
分析原因:
开始考虑#!/bin/sh的问题,可能是shell版本不对,于是查看当前shell
(此处记一下查看shell的命令
1、echo $SHELL
2、echo $0 ---并不是所有版本都支持
3、env | grep SHELL