私は2つの配列を繰り返すスクリプトを作るために最善を尽くしました。変更された部分を含むコマンドを実行するには、配列の各値にExecuteSyncoid
呼び出される文字列に基づいて文字列に値を入力する必要があります。SyncoidCommand
この文字列は
SyncoidCommand
SyncoidCommand
変更する必要があるコマンド/文字列は次のとおりです。
SynCoid-IterateThroughDataSets.sh -s /home/darkyere/Scripts/Syncoid/shortsourcelist -d /home/darkyere/Scripts/Syncoid/shortdestinationlist -c "syncoid <username>@XXX.XXX.XXX.XXX:SourceDataSet DestDataSet --compress none --sshcipher [email protected] --sshport <Port> --sshkey "/Dest/To/KeyFile" --no-privilege-elevation" -p <Password>
今変更する必要がある2つの部分は次のとおりです。
<username>@XXX.XXX.XXX.XXX:SourceDataSet DestDataSet
2つの問題はどこで議論されていますかSourceDataSet
?DestDataSet
長期的には、以下のように逆方向にも動作する必要があります。
SourceDataSet <username>@XXX.XXX.XXX.XXX:DestDataSet
私はこれらのさまざまなアプローチを試しましたが、いくつかの試みでは維持できなかったものがあります。
これ
$SourcePath
# And
$DestPath
「ExecuteSyncoid」に挿入する2つの配列の値。
ExecuteSyncoid="${SyncoidCommand/SourceDataSet/$SourcePath}"
ExecuteSyncoid="${SyncoidCommand/DestDataSet/$DestPath}"
# ----------
ExecuteSyncoid=$(echo $SyncoidCommand | sed "s+SourceDataSet+$SourcePath+g")
ExecuteSyncoid=$(echo $SyncoidCommand | sed "s+DestDataSet+$DestPath/+g")
しかし、変更された文字列は常に次のようになります。
syncoid <username>@XXX.XXX.XXX.XXX:SourceDataSet Storage/WallaBag --compress none --sshcipher [email protected] --sshport <Port> --sshkey "/Dest/To/KeyFile" --no-privilege-elevation" -p <Password>
したがって、コードを変更するのに問題はありませんDestDataset
。
しかし、私が投稿した以上を含むすべての試みにもかかわらず、決して変わりませんでした。
<username>@XXX.XXX.XXX.XXX:SourceDataSet
待つ。
<username>@XXX.XXX.XXX.XXX:Storage/WallaBag
文字列内の「:」のある部分を変更するのに役立つbash知識を持つ人はいますか?
<username>@XXX.XXX.XXX.XXX:SourceDataSet DestDataSet
# Or
SourceDataSet <username>@XXX.XXX.XXX.XXX:DestDataSet
Dakelを読んでくれてありがとう。
答え1
(回答は質問編集者からコミュニティウィキの回答に移動されました。)
これはエラーです。
ExecuteSyncoid="${SyncoidCommand/SourceDataSet/$SourcePath}"
ExecuteSyncoid="${SyncoidCommand/DestDataSet/$DestPath}"
Philipposの助けのおかげで、この問題は解決されました。
ExecuteSyncoid="${SyncoidCommand/SourceDataSet/$SourcePath}"
ExecuteSyncoid2="${SyncoidCommand/DestDataSet/$DestPath}"
最初の文字列を2番目の文字列で上書きするのと同じくらい簡単です。 2回目の突き刺しを変えた後に働いた。
ありがとうございます。良い一日になってください。