elasticsearch.ymlファイルがあります。Bash:パラメータを使用して設定ファイルのパスを置き換えます。
ユーザ入力に基づいてpath.dataとpath.logsの値を更新する必要があります。
パスとして引数をとり、文字列を置き換える.shスクリプトを作成しましたが、空の値に置き換えられました。スクリプトの下
この
sed -i.bak -e 's/# path.data:.*/ path.data: $2 /' "$1"
sed -i.bak -e 's/# path.logs:.*/ path.logs: $3 /' "$1"
例を使用しています:./updateconfig.sh /usr/local/elasticsearch/config/elasticsearch.yml /var/lib/elasticsearch /var/log/elasticsearch
は、私は、二重過ぎる引用符( ")が、運を試してみました
は、あなたがこの上で私を助けてください。更新
例異なるオプションで
をしようとしたとき、例えば、エラーを追加:
sed -i.bak -e "s/# path.data:.*/ path.data: $2 /" "$1"
sed -i.bak -e 's># path.data:.*> path.data: $2 >' "$1"
sed -i.bak -e "'s># path.data:.*> path.data: $2 >'" "$1"
エラー:sedの
:-e式#1、CHAR 32:不明オプション
s' sed: -e expression #1, char 1: unknown command:
''
二重引用符を使用する必要があります。使用する例を示してください。 – 123
二重引用符を使用するとエラーが発生する sed:-e式#1、char 32: 's 'に未知のオプション 例:sed -i.bak -e" s /#path.data:.* /パス。データ:$ 2/"" $ 1 " –
別の区切り文字を使用 – 123