一、問題或需求
因爲工作要求,需要重構一部分的shell腳本,腳本中有些使用到的文件路徑、參數、配置項等等,都寫死在腳本中,導致腳本耦合度高,使用不靈活、複用性也不高,因此需要重構一部分代碼。將部分配置項單獨拿出來,成立一個配置文件,然後在shell腳本中讀入並引用相關配置項。
二、解決辦法
這裏使用到的config.txt和test.sh都是臨時創建的一個文件,總的方法還是不變的~
#config.txt 文件內容
FILE_PATH=/root/snoe
FIZE_SIZE=15
1.方法一 :source
#!/bin/bash
source config.txt
echo $FILE_PATH
echo $FIZE_SIZE
運行腳本之前需要注意一點,source只存在於bash中,用sh去運行test.sh是會報錯,如下:
root@juzuodaliyun:~/gcj sh test.sh a.txt
test.sh: 5: test.sh: source: not found
因此必須使用bash去運行這個腳本。
root@juzuodaliyun:~/gcj bash test.sh
/root/snoe
15
2.方法二:while read line;
使用循環讀入的辦法也可以將配置文件中的配置項讀入到shell腳本中
#!/bin/bash
while read line;
do
eval "$line"
done < config.txt
echo $FILE_PATH
echo $FIZE_SIZE
運行腳本,也可以將配置文件中的所有配置項讀入,並在腳本中引用。
root@juzuodaliyun:~/gcj sh test.sh
/root/snoe
15
其實還有用for循環等方法,這個你可以自己去實現,原理都是大同小異的。
參考博文:https://www.cnblogs.com/pengdonglin137/p/3858696.html