#!/bin/sh
# background-loop.sh
for i in 1 2 3 4 5 6 7 8 9 10
do
echo -n "$i " # -n禁止打印后自动换行
done & # 把这个循环放到后台去,可以使用&&代替
# 它有时会后于第二个循环执行.
echo # 这个'echo'有时不会打印出来.
for i in 11 12 13 14 15 16 17 18 19 20
do
echo -n "$i "
done
echo # 这个echo有时不会打印出来
# 这个脚本的输出是:
# 1 2 3 4 5 6 7 8 9 10
# 11 12 13 14 15 16 17 18 19 20
# 然而有时你也有可能得到如下的输出:
# 11 12 13 14 15 16 17 18 19 20
# 1 2 3 4 5 6 7 8 9 10 bozo $
# (第二个 'echo'没有执行. 为什么?)
# 偶尔也会:
# 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
# (第一个 'echo' 没有执行. 为什么?)
# 非常罕有的情况可能是:
# 11 12 13 1 2 3 4 5 6 7 8 9 10 14 15 16 17 18 19 20
# 前台的循环抢占了后台的循环输出.
shell的for循环中,&和&&产生的影响
于 2023-11-22 15:44:22 首次发布