亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

shell入門第四講

1、回顧

我們昨天給大家分享了四種執(zhí)行腳本的方法,不知道大家還記不記得了,分別是使用bash file.sh、./file.sh 、source file.sh、. ?file.sh。我們建議大家使用前兩種方法來執(zhí)行腳本,這也是日常工作中大家都使用的方式。

那今天我們先來說說這四種執(zhí)行腳本的區(qū)別是什么

2、區(qū)別

首先我們打印當前進程的父進程ID和當前進程的ID,分別使用命令

打印父進程ID: echo $PPID ??????

打印當前進程ID: echo $$

現(xiàn)在我們把它寫入腳本里面,如下所示

[root@localhost ~]# cat test.sh

#!/bin/bash

echo " PPID: $PPID ,PID: $$"

在執(zhí)行之前,我們先來確定一下當前我們shell環(huán)境的PID號

[root@localhost ~]# tty

/dev/pts/2

[root@localhost ~]# ps axjf | grep pts/2

?PPID ??PID ?PGID ??SID TTY ?????TPGID STAT ??UID ??TIME COMMAND

?1016 ?6281 ?6281 ?6281 ? ??????????-1 Ss ??????0 ??0:00 ?\_ sshd: root@pts/2

?6281 ?6283 ?6283 ?6283 pts/2 ????7053 Ss ??????0 ??0:00 ?????\_ -bash

?6283 ?7053 ?7053 ?6283 pts/2 ????7053 R+ ??????0 ??0:00 ?????????\_ ps axjf

?6283 ?7054 ?7053 ?6283 pts/2 ????7053 S+ ??????0 ??0:00 ?????????\_ grep --color=pts/2

可以看出來我們當前shell進程的PID號(-bash)是6283這個數(shù)字,那現(xiàn)在我們來執(zhí)行一下看看。

2.1、使用bash命令直接執(zhí)行

[root@localhost ~]# bash test.sh

?PPID: 6283 ,PID: 7088

可以看出來當前的shell環(huán)境又生成了一個新的子shell環(huán)境,其子進程ID:7088,此時我們 $$ 正好打印的是這個子進程的ID號

2.2、使用./命令執(zhí)行(先賦予x權(quán)限)

[root@localhost ~]# ./test.sh

?PPID: 6283 ,PID: 7115

可以看出來當前的shell環(huán)境也是又生成了一個新的子shell環(huán)境,其子進程ID:7115,進程ID號是隨機的,因此跟上面的不一樣。

2.3、使用source命令來執(zhí)行

[root@localhost ~]# source test.sh

?PPID: 6281 ,PID: 6283

我們發(fā)現(xiàn)這次的PID號居然是6283,也就是我們上面給大家展示的當前shell環(huán)境的PID,而6281是其父進程ID號。這說明我們使用source命令執(zhí)行腳本后 ?并沒有 ?生成一個新的子shell環(huán)境。還是在原來的bash shell環(huán)境中執(zhí)行的shell腳本。

2.4、使用 ?. ?來執(zhí)行

[root@localhost ~]# . test.sh

?PPID: 6281 ,PID: 6283

依然是與上面的soure命令的情況是一樣的,使用 . 來執(zhí)行腳本,并沒有生成新的子shell環(huán)境,還是在原來的bash shell環(huán)境中執(zhí)行的。

好了,上面的就是我們給大家分享的研究成果,希望大家今后在執(zhí)行shell腳本時要知道自己是在做什么。不然回因為執(zhí)行的shell環(huán)境問題而大費周折。

聲明:文章來源于網(wǎng)絡,如有侵權(quán)請聯(lián)系刪除!

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國內(nèi)好評如潮的Linux云計算運維、SRE、Devops、網(wǎng)絡安全、云原生、Go、Python開發(fā)專業(yè)人才培訓機構(gòu)!