亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2845 | 回復(fù): 6
打印 上一主題 下一主題

關(guān)于shell腳本執(zhí)行方式的探討 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2010-04-15 11:58 |只看該作者 |倒序?yàn)g覽
寫了一個(gè)小腳本做測(cè)試
  1. #! /usr/bin/ksh
  2. subFun() {
  3. echo "It's a sub Funcation"
  4. sleep 10
  5. }

  6. clear
  7. echo "It's a father process"
  8. sleep 5
  9. subFun
  10. echo "It's end"
  11. exit 0
復(fù)制代碼
使用
  1. while true
  2. do
  3. ps -ef|grep pts/4
  4. sleep 1
  5. echo
  6. done
復(fù)制代碼
監(jiān)控進(jìn)程的變化

第一次使用 #sh /tmp/test.sh來執(zhí)行小腳本
進(jìn)程監(jiān)控內(nèi)容如下:
root  1679548 15286324   0 11:37:16  pts/0  0:00 grep pts/4
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh

    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 31772756 15286324   0 11:37:17  pts/0  0:00 grep pts/4

    root  1679554  3678372   0 11:37:18  pts/4  0:00 /usr/bin/ksh ./tmp/test.sh
    root  3383440 15286324   0 11:37:18  pts/0  0:00 grep pts/4
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 41070818  1679554   0 11:37:18  pts/4  0:00 sleep 5

    root  1679554  3678372   0 11:37:18  pts/4  0:00 /usr/bin/ksh ./tmp/test.sh
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 31772762 15286324   0 11:37:20  pts/0  0:00 grep pts/4
    root 41070818  1679554   0 11:37:18  pts/4  0:00 sleep 5

    root  1679554  3678372   0 11:37:18  pts/4  0:00 /usr/bin/ksh ./tmp/test.sh
    root  3383446 15286324   0 11:37:21  pts/0  0:00 grep pts/4
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 41070818  1679554   0 11:37:18  pts/4  0:00 sleep 5

    root  1679554  3678372   0 11:37:18  pts/4  0:00 /usr/bin/ksh ./tmp/test.sh
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 31772768 15286324   0 11:37:22  pts/0  0:00 grep pts/4
    root 41070818  1679554   0 11:37:18  pts/4  0:00 sleep 5

    root  1679554  3678372   0 11:37:18  pts/4  0:00 /usr/bin/ksh ./tmp/test.sh
    root  3383452 15286324   0 11:37:23  pts/0  0:00 grep pts/4
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 41070818  1679554   0 11:37:18  pts/4  0:00 sleep 5

    root  1679554  3678372   0 11:37:18  pts/4  0:00 /usr/bin/ksh ./tmp/test.sh
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 32567502 15286324   0 11:37:24  pts/0  0:00 grep pts/4
    root 41070820  1679554   0 11:37:23  pts/4  0:00 sleep 10

    root  1679554  3678372   0 11:37:18  pts/4  0:00 /usr/bin/ksh ./tmp/test.sh
    root  3383460 15286324   0 11:37:25  pts/0  0:00 grep pts/4
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 41070820  1679554   0 11:37:23  pts/4  0:00 sleep 10

    root  1679554  3678372   0 11:37:18  pts/4  0:00 /usr/bin/ksh ./tmp/test.sh
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 32567508 15286324   0 11:37:26  pts/0  0:00 grep pts/4
    root 41070820  1679554   0 11:37:23  pts/4  0:00 sleep 10

    root  1679554  3678372   0 11:37:18  pts/4  0:00 /usr/bin/ksh ./tmp/test.sh
    root  3383466 15286324   0 11:37:27  pts/0  0:00 grep pts/4
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 41070820  1679554   0 11:37:23  pts/4  0:00 sleep 10

    root  1679554  3678372   0 11:37:18  pts/4  0:00 /usr/bin/ksh ./tmp/test.sh
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 32567514 15286324   0 11:37:28  pts/0  0:00 grep pts/4
    root 41070820  1679554   0 11:37:23  pts/4  0:00 sleep 10

    root  1679554  3678372   0 11:37:18  pts/4  0:00 /usr/bin/ksh ./tmp/test.sh
    root  3383472 15286324   0 11:37:29  pts/0  0:00 grep pts/4
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 41070820  1679554   0 11:37:23  pts/4  0:00 sleep 10

    root  1679554  3678372   0 11:37:18  pts/4  0:00 /usr/bin/ksh ./tmp/test.sh
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 32567520 15286324   0 11:37:30  pts/0  0:00 grep pts/4
    root 41070820  1679554   0 11:37:23  pts/4  0:00 sleep 10

    root  1679554  3678372   0 11:37:18  pts/4  0:00 /usr/bin/ksh ./tmp/test.sh
    root  3383478 15286324   0 11:37:31  pts/0  0:00 grep pts/4
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 41070820  1679554   0 11:37:23  pts/4  0:00 sleep 10

    root  1679554  3678372   0 11:37:18  pts/4  0:00 /usr/bin/ksh ./tmp/test.sh
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 32567526 15286324   0 11:37:32  pts/0  0:00 grep pts/4
    root 41070820  1679554   0 11:37:23  pts/4  0:00 sleep 10

    root  1679554  3678372   0 11:37:18  pts/4  0:00 /usr/bin/ksh ./tmp/test.sh
    root  3383484 15286324   0 11:37:33  pts/0  0:00 grep pts/4
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 41070820  1679554   0 11:37:23  pts/4  0:00 sleep 10

    root  1679556 15286324   0 11:37:34  pts/0  0:00 grep pts/4
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh

    root  3383490 15286324   0 11:37:35  pts/0  0:00 grep pts/4
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh

第二次使用#.  /tmp/test.sh來執(zhí)行
進(jìn)程監(jiān)控內(nèi)容如下:
root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 41070604 15286324   0 11:37:50  pts/0  0:00 grep pts/4

    root  1679606 15286324   0 11:37:51  pts/0  0:00 grep pts/4
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh

    root  3383506 15286324   0 11:37:52  pts/0  0:00 grep pts/4
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 41070612  3678372   0 11:37:51  pts/4  0:00 sleep 5

    root  1679612 15286324   0 11:37:53  pts/0  0:00 grep pts/4
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 41070612  3678372   0 11:37:51  pts/4  0:00 sleep 5

    root  3383512 15286324   0 11:37:54  pts/0  0:00 grep pts/4
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 41070612  3678372   0 11:37:51  pts/4  0:00 sleep 5

    root  1679362 15286324   0 11:37:55  pts/0  0:00 grep pts/4
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 41070612  3678372   0 11:37:51  pts/4  0:00 sleep 5

    root  3383518 15286324   0 11:37:56  pts/0  0:00 grep pts/4
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 41070614  3678372   0 11:37:56  pts/4  0:00 sleep 10

    root  1679368 15286324   0 11:37:57  pts/0  0:00 grep pts/4
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 41070614  3678372   0 11:37:56  pts/4  0:00 sleep 10

    root  3383524 15286324   0 11:37:58  pts/0  0:00 grep pts/4
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 41070614  3678372   0 11:37:56  pts/4  0:00 sleep 10

    root  1679374 15286324   0 11:37:59  pts/0  0:00 grep pts/4
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 41070614  3678372   0 11:37:56  pts/4  0:00 sleep 10

    root   557138 15286324   0 11:38:00  pts/0  0:00 grep pts/4
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 41070614  3678372   0 11:37:56  pts/4  0:00 sleep 10

    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 41070614  3678372   0 11:37:56  pts/4  0:00 sleep 10
    root 48349296 15286324   0 11:38:01  pts/0  0:00 grep pts/4

    root   557144 15286324   0 11:38:02  pts/0  0:00 grep pts/4
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 41070614  3678372   0 11:37:56  pts/4  0:00 sleep 10

    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 41070614  3678372   0 11:37:56  pts/4  0:00 sleep 10
    root 48349302 15286324   0 11:38:03  pts/0  0:00 grep pts/4

    root   557150 15286324   0 11:38:04  pts/0  0:00 grep pts/4
    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 41070614  3678372   0 11:37:56  pts/4  0:00 sleep 10

    root  3678372 32579786   0 11:34:51  pts/4  0:00 -ksh
    root 41070614  3678372   0 11:37:56  pts/4  0:00 sleep 10
    root 48349308 15286324   0 11:38:05  pts/0  0:00 grep pts/4

    root 32579788 15286324   0 11:38:06  pts/0  0:00 grep pts/4

    root 48349314 15286324   0 11:38:07  pts/0  0:00 grep pts/4

使用sh /tmp/test.sh是由ksh進(jìn)程創(chuàng)建了/usr/bin/ksh ./tmp/test.sh進(jìn)程,再由/usr/bin/ksh ./tmp/test.sh進(jìn)程創(chuàng)建了subFun函數(shù)體的子進(jìn)程sleep 10

使用. /tmp/test.sh則所有的進(jìn)程全部是由ksh進(jìn)程創(chuàng)建的。

再觀察root的 .sh_history文件,發(fā)現(xiàn)如下現(xiàn)象
第一次執(zhí)行在.sh_history中能記錄到sh /tmp/test.sh命令
第二次執(zhí)行在.sh_history中能記錄到
. /tmp/test.sh
echo "It's a sub Funcation"
sleep 10
}

現(xiàn)在的問題就是,為什么當(dāng)腳本中的函數(shù)體直接由ksh進(jìn)程創(chuàng)建時(shí)會(huì)將函數(shù)體中的命令記錄到.sh_history中呢?
望有高手來指教一下。

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2010-04-15 13:15 |只看該作者
第一種方式使用 #sh 腳本名 的方式是比較容易理解的,父進(jìn)程創(chuàng)建了“腳本名”的進(jìn)程,所以該“腳本名”能被ksh記錄到.sh_history中,腳本中的命令及函數(shù)體都是由該腳本創(chuàng)建,因此無法被ksh記錄到.sh_history中。

但是第二種方式使用 #. 空格 腳本名 的方式,腳本中所有的命令,包括函數(shù)體都是由父進(jìn)程ksh創(chuàng)建出來的,理論上應(yīng)該都能被記錄到.sh_history中啊,為什么單單只有函數(shù)體內(nèi){以后的命令能被記錄到.sh_history中呢?

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2010-04-16 11:42 |只看該作者
只有人看,沒有人回。
只能自己頂一下了。

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2010-04-19 16:32 |只看該作者
自己再頂一次,我的問題難道很深?yuàn)W嗎?為什么沒有人能回答呢?

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2010-06-03 11:02 |只看該作者
順便再補(bǔ)充一下運(yùn)行環(huán)境,是AIX上的ksh,不是普通linux上用的ksh93或pdksh

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2010-09-25 14:54 |只看該作者
隔了那么久都無人回答?

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2010-09-25 15:59 |只看該作者
不懂 ksh  我只會(huì)bash
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP