Expectスクリプトのsendコマンドに特殊文字「と`」を使用してください。

Expectスクリプトのsendコマンドに特殊文字「と`」を使用してください。

すべてのサーバーでルートパスワードをリセットする必要があるコマンドを実行しようとして、Linuxサーバーでコマンドを実行しようとしています。自動化に予想されるスクリプトを使用する複数のサーバーがあるため、コマンドには二重引用符やアクセントなどの特殊文字が含まれています`。したがって、実行中に二重引用符の後に追加の文字がエラーとして表示されます。

send " chage -l root | grep -i "Password expires" | if [[ `awk -F : '{print $2}' ` = "never" ]] ; then echo "password needs to be changed " ;else echo "skipping reset " ; fi;\r"

二重引用符を試しましたが、\エラーは同じです。

ベストアンサー1

補間なしで文字列が必要な場合タリウム{}(予想される言語があります)拡張する文字や変数がない場合は、次のよう{}に囲みます。

send { chage -l root | grep -i "Password expires" | if [[ `awk -F : '{print $2}' ` = "never" ]] ; then echo "password needs to be changed " ;else echo "skipping reset " ; fi;}
send \r

おすすめ記事