私はスクリプトでviコマンドを使用しようとします。さらに、同じスクリプトでsudoのパスワードを渡そうとします。だから私は次のようなものを持っています:パイプからsudoのパスワードを読み取る
echo mypassword | bash -c "echo $'Goappendthis\E:x\n' | sudo vi /etc/test"
viコマンドは成功しましたが、まだパスワードを尋ねています。私はどのようにパスワードを使ってそれを行うことができるので、スクリプト内の複数のホストに対して同じコマンドを実行できますか?
ところで、ex' 'としてそれを呼び出すことは非対話型使用するために設計されたモードに' vi'を置く、または 'viの-s scriptfile'を使用すると、VIがから実行するコマンドを読み込みます'scriptfile'です。 –
ご意見ありがとうございます。奇妙なことに、会社の賢明な方針では、sed、awk、python、またはperlの1つのライナーでルート所有ファイルを変更することはできません。それはちょうどsudo viを使ってファイルを変更することができるように見え、私は何百ものホストを変更する必要があるので、私はこれを自動化する方法を見つける必要があります。 基本的には、同じファイルをsudoを実行してファイルの最後に行を追加して保存する必要があります。どうすればそれをやることができますか? – JavaRed
ポリシーの手紙を遵守していても、あなたは確かにその精神に順応していません。いずれにしても、典型的なRight Thingは、人形、シェフ、SaltStack、CFEngineなどのオーケストレーションシステムが提供する機能を使用することです。ファイルの生成をテンプレート化するために使用します。 –