1. 程式人生 > >舉例說明source執行指令碼和sh執行指令碼的區別

舉例說明source執行指令碼和sh執行指令碼的區別

檢視測試指令碼

[[email protected]]# cat test.sh

#!/bin/sh

user='whoami'

向測試變數賦值

[[email protected]]# user='222'
[[email protected]]# echo $user
222
給與執行許可權

[[email protected]]# chmod +x test.sh

執行指令碼測試變數

[[email protected]]# ./test.sh && echo $user
222

用sourece方式重新測試

[[email protected]

home]# source test.sh && echo $user
whoami

解釋:

用source執行指令碼檔案,執行過程不另開程序,指令碼檔案中設定的變數在當前shell中可以看到;

用sh執行指令碼檔案,是在當前程序另開子程序來執行指令碼命令,指令碼檔案中設定的變數在當前shell中不能看到。

另外一點,source命令經常用點命令“.”來替代,用指令碼檔名本身執行(如果shell指令碼具有可執行許可權)和用sh命令執行指令碼的作用完全相同