Shell 也可以包含外部腳本嘀倒, 可以封裝一些公共的代碼為單獨文件采盒,需要用的時候直接引用唧龄。
方法有兩種兼砖, 分別是.
和source
, 如下
. file
source file
文件引用
一個是被引用腳本import .sh
既棺, 另外是執(zhí)行腳本test.sh
讽挟, 放在同一個目錄下。
#!/bin/bash
name='LiLei'
#!/bin/bash
source ./import.sh
echo "Your name is $name"
# sh test.sh
Your name is LiLei
引申丸冕,使用絕對路徑
因為是放在同一個目錄下耽梅,所以source ./import.sh
引用看起來沒有問題, 但是如果在上一層目錄運行腳本時會出錯胖烛,如下:
$ sh shell_testing/test.sh
shell_testing/test.sh: line 4: ./import.sh: No such file or directory
所以引用的話最好使用絕對路徑
眼姐, 其實也就是test.sh腳本的絕對路徑,因為這兩個腳本放在同一個目錄下佩番。
#!/bin/bash
abspath=$(cd "$(dirname "$0")";pwd)
source $abspath/import.sh
echo "Your name is $name"
# sh test.sh
Your name is LiLei
# sh shell_testing/test.sh
Your name is LiLei
引申众旗,定義了同一個變量
當(dāng)前腳本的變量會覆蓋引用的變量
#!/bin/bash
abspath=$(cd "$(dirname "$0")";pwd)
source $abspath/import.sh
name="ZhangSan"
echo "Your name is $name"
# sh test.sh
Your name is ZhangSan