2015-09-06 54 views

回答

0

在bash,看起來像source script.sh(或. script.sh)在當前shell運行腳本的命令,不管#!的。

因此,如果你有一個腳本(在本例中名爲script.sh):

#!/bin/bash 
VALUE=1 
cd /tmp 

這將打印什麼(因爲VALUE爲空),而不是改變你的目錄(因爲這些命令是在另一個實例執行的bash):

bash script.sh 
echo $VALUE 

這將打印1,改變你的目錄/tmp

source script.sh 
echo $VALUE 

如果不是有這個腳本(在本例中名爲script.py):

#!/usr/bin/env python 
print 'Hello, world" 

這將使一個奇怪的bash錯誤(因爲它試圖把它解釋爲一個bash腳本):

source shell.py 

這也* *給一個奇怪的bash錯誤(因爲它試圖把它解釋爲一個bash腳本):

bash shell.py 

這將打印Hello, world

./shell.py # assuming the execute bit it set