shell腳本的執行方式及區別

1、利用直接執行(sh/bash或./)的方式來執行腳本。

2、利用source(或 .)來執行腳本。

這兩種方式如果從執行結果來看,並沒有什麼區別。

下面看個例子:

  1. cat name.sh 
  2. #!/bin/bash 
  3. echo "Please input your name:" 
  4. read  name 
  5. echo  "Your name is $name" 
  1. #sh name.sh            #直接執行name.sh 
  2. Please input your name:        
  3. Jack                    #輸入Jack 
  4. Your name is Please input your name:Jack 
  5. #echo $name                   
  6.                               #沒有任何返回值,說明這個變量在父進程中是不存在的。 

  1. # source name.sh               #使用source執行name.sh(也可寫成. name.sh )
  2. Please input your name
  3. Jack  
  4. Your name is Please input your name:Jack 
  5. #echo $name 
  6. Jack                    #有返回值,說明這個變量在父進程中是存在的。    

 

第一種方式執行腳本時,是在一個新的子進程bash中運行的,腳本執行完成後退出子shell,變

量消失。就是說:一個子進程完成後,子進程內的各項變量或操作將會結束而不會傳回到父進

程中;第二種方式會在父進程中執行,各項操作都會在原本的bash內生效。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章