Như mbiber đã nói, source
một tập tin khác. Ví dụ: tệp cấu hình của bạn some.config
sẽ là:
var1=val1
var2=val2
Và kịch bản của bạn có thể trông như sau:
#! /bin/bash
# Optionally, set default values
# var1="default value for var1"
# var1="default value for var2"
. /path/to/some.config
echo "$var1" "$var2"
Nhiều tệp trong /etc/default
thường phục vụ như các tệp cấu hình cho các tập lệnh shell khác theo cách tương tự. Một ví dụ rất phổ biến từ các bài viết ở đây là /etc/default/grub
. Tệp này được sử dụng để đặt các tùy chọn cấu hình cho GRUB, vì đây grub-mkconfig
là tập lệnh shell cung cấp cho nó:
sysconfdir="/etc"
#…
if test -f ${sysconfdir}/default/grub ; then
. ${sysconfdir}/default/grub
fi
Nếu bạn thực sự phải xử lý cấu hình của biểu mẫu:
var1 some value 1
var2 some value 2
Sau đó, bạn có thể làm một cái gì đó như:
while read var value
do
export "$var"="$value"
done < /path/to/some.config
(Bạn cũng có thể làm một cái gì đó giống như eval "$var=$value"
, nhưng đó là rủi ro hơn nguồn một kịch bản. Bạn vô tình có thể phá vỡ một cách dễ dàng hơn một tập tin nguồn.)