bashスクリプトでは、このような設定ファイルを読んでみたいです:
re=foo.bar
そのファイルをソースした後、$ reはfoo.barです。 私が単にファイルをソースすると、バックスラッシュは失われます。どうすれば設定ファイルの "foo.bar"を引用しなくてもいいですか(できるだけシンプルな設定ファイルを保存しますか?)
回答:
回答№1は1バックスラッシュを個別に引用する必要があります。 別の バックスラッシュ
re=foo\.bar
または引用符で囲まれた文字列の一部として
re="foo.bar"
回答№2の場合は0
行ごとにそれを読む:
IFS="="
while read -r var val
do
eval "$var="$val""
done < file.conf
回答№3の場合は0
使う read
ループする -r
そして printf -v
:
while IFS=$" t" read -r LINE; do
[[ $LINE != #* && $LINE =~ ^[[:alpha:]_][[:alnum:]_]*= ]] || continue
IFS== read -r A B <<< "$LINE"
printf -v "$A" "$B"
done
- 私たちは最初に行全体を読んで先頭と末尾のスペースを取り除きました。
- コメントの検出もオプションになる可能性がありますが、行全体のコメントには簡単です。