當(dāng)前位置:
首頁 >
[转载] 后台进程符的使用 [文摘]
發(fā)布時(shí)間:2025/7/14
34
豆豆
生活随笔
收集整理的這篇文章主要介紹了
[转载] 后台进程符的使用 [文摘]
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
原文地址:&?后臺進(jìn)程符的使用?[文摘]作者:Biot& 后臺運(yùn)行命令. 一個(gè)命令后邊跟一個(gè)& 表示在后臺運(yùn)行.讓我們通過3個(gè)例子來初步了解這個(gè)命令。 Example 1: bash$ sleep 10 &
[1] 850
[1]+? Done??????????????????? sleep 10 Example 2 (在后臺運(yùn)行一個(gè)循環(huán)): ? 1 #!/bin/bash
? 2 # background-loop.sh
? 3
? 4 for i in 1 2 3 4 5 6 7 8 9 10??????????? # 第一個(gè)循環(huán).
? 5 do
? 6?? echo -n "$i "
? 7 done & # 在后臺運(yùn)行這個(gè)循環(huán).
? 8??????? # 在第2個(gè)循環(huán)之后, 將在某些時(shí)候執(zhí)行.
? 9
?10 echo?? # 這個(gè)'echo'某些時(shí)候?qū)⒉粫@示.
?11
?12 for i in 11 12 13 14 15 16 17 18 19 20?? # 第二個(gè)循環(huán).
?13 do
?14?? echo -n "$i "
?15 done
?16
?17 echo?? # 這個(gè)'echo'某些時(shí)候?qū)⒉粫@示.
?18
?19 # ======================================================
?20
?21 # 期望的輸出應(yīng)該是:
?22 # 1 2 3 4 5 6 7 8 9 10
?23 # 11 12 13 14 15 16 17 18 19 20
?24
?25 # 然而實(shí)際的結(jié)果有可能是:
?26 # 11 12 13 14 15 16 17 18 19 20
?27 # 1 2 3 4 5 6 7 8 9 10 bozo $
?28 # (第2個(gè)'echo'沒執(zhí)行, 為什么?)
?29
?30 # 也可能是:
?31 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
?32 # (第1個(gè)'echo'沒執(zhí)行, 為什么?)
?33
?34 # 非常少見的執(zhí)行結(jié)果, 也有可能是:
?35 # 11 12 13 1 2 3 4 5 6 7 8 9 10 14 15 16 17 18 19 20
?36 # 前臺的循環(huán)先于后臺的執(zhí)行.
?37
?38 exit 0
?39
?40 #? Nasimuddin Ansari 建議加一句 sleep 1
?41 #+ 在6行和14行的 echo -n "$i" 之后加這句.
?42 #+ 為了真正的樂趣. Example 3: 在一個(gè)腳本內(nèi)后臺運(yùn)行一個(gè)命令,有可能造成這個(gè)腳本的掛起,等待一個(gè)按鍵(Enter)的響應(yīng). 看起來只有在這個(gè)命令的結(jié)果需要輸出到stdout的時(shí)候, 這種現(xiàn)象才會出現(xiàn). 這是個(gè)很煩人的現(xiàn)象.幸運(yùn)的是, 我們有針對這個(gè)問題的解決辦法. 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 bash$ ./test.sh
Done.
?[bozo@localhost test-scripts]$ total 1
?-rwxr-xr-x??? 1 bozo???? bozo?????????? 34 Oct 11 15:09 test.sh 看起來只要在后臺運(yùn)行命令的后邊加上一個(gè)wait命令就會解決這個(gè)問題.
如果將后臺運(yùn)行命令的輸出重定向到文件中或/dev/null中, 也能解決這個(gè)問題. [文摘摘自: 高級Bash腳本編程指南-3.9.1_cn]
[1] 850
[1]+? Done??????????????????? sleep 10 Example 2 (在后臺運(yùn)行一個(gè)循環(huán)): ? 1 #!/bin/bash
? 2 # background-loop.sh
? 3
? 4 for i in 1 2 3 4 5 6 7 8 9 10??????????? # 第一個(gè)循環(huán).
? 5 do
? 6?? echo -n "$i "
? 7 done & # 在后臺運(yùn)行這個(gè)循環(huán).
? 8??????? # 在第2個(gè)循環(huán)之后, 將在某些時(shí)候執(zhí)行.
? 9
?10 echo?? # 這個(gè)'echo'某些時(shí)候?qū)⒉粫@示.
?11
?12 for i in 11 12 13 14 15 16 17 18 19 20?? # 第二個(gè)循環(huán).
?13 do
?14?? echo -n "$i "
?15 done
?16
?17 echo?? # 這個(gè)'echo'某些時(shí)候?qū)⒉粫@示.
?18
?19 # ======================================================
?20
?21 # 期望的輸出應(yīng)該是:
?22 # 1 2 3 4 5 6 7 8 9 10
?23 # 11 12 13 14 15 16 17 18 19 20
?24
?25 # 然而實(shí)際的結(jié)果有可能是:
?26 # 11 12 13 14 15 16 17 18 19 20
?27 # 1 2 3 4 5 6 7 8 9 10 bozo $
?28 # (第2個(gè)'echo'沒執(zhí)行, 為什么?)
?29
?30 # 也可能是:
?31 # 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
?32 # (第1個(gè)'echo'沒執(zhí)行, 為什么?)
?33
?34 # 非常少見的執(zhí)行結(jié)果, 也有可能是:
?35 # 11 12 13 1 2 3 4 5 6 7 8 9 10 14 15 16 17 18 19 20
?36 # 前臺的循環(huán)先于后臺的執(zhí)行.
?37
?38 exit 0
?39
?40 #? Nasimuddin Ansari 建議加一句 sleep 1
?41 #+ 在6行和14行的 echo -n "$i" 之后加這句.
?42 #+ 為了真正的樂趣. Example 3: 在一個(gè)腳本內(nèi)后臺運(yùn)行一個(gè)命令,有可能造成這個(gè)腳本的掛起,等待一個(gè)按鍵(Enter)的響應(yīng). 看起來只有在這個(gè)命令的結(jié)果需要輸出到stdout的時(shí)候, 這種現(xiàn)象才會出現(xiàn). 這是個(gè)很煩人的現(xiàn)象.幸運(yùn)的是, 我們有針對這個(gè)問題的解決辦法. 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 bash$ ./test.sh
Done.
?[bozo@localhost test-scripts]$ total 1
?-rwxr-xr-x??? 1 bozo???? bozo?????????? 34 Oct 11 15:09 test.sh 看起來只要在后臺運(yùn)行命令的后邊加上一個(gè)wait命令就會解決這個(gè)問題.
如果將后臺運(yùn)行命令的輸出重定向到文件中或/dev/null中, 也能解決這個(gè)問題. [文摘摘自: 高級Bash腳本編程指南-3.9.1_cn]
轉(zhuǎn)載于:https://www.cnblogs.com/liuzhuqing/archive/2011/10/27/7481005.html
總結(jié)
以上是生活随笔為你收集整理的[转载] 后台进程符的使用 [文摘]的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文本信息检索基本知识【转】
- 下一篇: 无线通信协议小感