[转载]& 后台进程符的使用 [文摘]
原文地址:& 后台进程符的使用 [文摘]  作者:Biot
&
后台运行命令. 一个命令后边跟一个&
表示在后台运行.让我们通过3个例子来初步了解这个命令。
Example
1:
bash$ sleep 10
&
[1] 850
[1]+
Done                   
sleep 10                    
[1] 850
[1]+
Example 2
(在后台运行一个循环):
Example
3:
在一个脚本内后台运行一个命令,有可能造成这个脚本的挂起,等待一个按键(Enter)的响应.
看起来只有在这个命令的结果需要输出到stdout的时候, 这种现象才会出现. 这是个很烦人的现象.幸运的是,
我们有针对这个问题的解决办法.
1)
  1 #!/bin/bash
  2 #
test.sh        
  3
  4 ls -l &
  5 echo "Done."            
bash$ ./test.sh
Done.
 [bozo@localhost test-scripts]$ total 1
 -rwxr-xr-x    1 bozo    
bozo           34
Oct 11 15:09 test.sh
 _
       
2)
  1 #!/bin/bash
  2 #
test.sh        
  3
  4 ls -l &
  5 echo "Done."
  6 wait                                       
Done.
2)
bash$ ./test.sh
Done.
 [bozo@localhost test-scripts]$ total 1
 -rwxr-xr-x    1 bozo    
bozo           34
Oct 11 15:09 test.sh                   
Done.
看起来只要在后台运行命令的后边加上一个wait命令就会解决这个问题.
如果将后台运行命令的输出重定向到文件中或/dev/null中, 也能解决这个问题.
如果将后台运行命令的输出重定向到文件中或/dev/null中, 也能解决这个问题.
[文摘摘自:
高级Bash脚本编程指南-3.9.1_cn]
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号