テキストを置き換えるためにsedコマンドに問題があります。置換テキストが特別な文字列を持たないプレーンテキストの場合、sedコマンドは完璧に機能します。しかし、私の置き換えテキストには、unixファイルシステムのパスが含まれているため、動作しません。私は以下のようにエラーを取得しています、いくつかのいずれかが、この中で私を助けてください:sedを使用して特殊文字を含むシェルスクリプト内の文字列を置換
$ ./install2
sed: -e expression #1, char 22: unknown option to `s'
sed: -e expression #1, char 16: unknown option to `s'
$ cat install2
#!/bin/bash
CONFIG=./config
TMPFILE=./tmpFile
while read line
do
var=$(echo $line | cut -d'=' -f1)
val=$(echo $line | cut -d'=' -f2)
sed -i "s/$var/${val}/i" $TMPFILE
done < "$CONFIG"
$ cat config
INSTALLATION_ROOT=/opt/install/user-home/products
DOWNLOAD_HIBERNATE=false
CONFIG_ROOT=/opt/configs/cfgMgmt/products
$ cat tmpFile
<entry key="installationRoot">INSTALLATION_ROOT</entry>
<entry key="configDirectoryRoot">CONFIG_ROOT</entry>
おかげで、 サニー