CentOSでexpectを使用して諸々の設定の自動化を行おうとしています。
その中で、おそらくメタ文字でコマンドが正しく認識されない問題が起きているため、お分かりになる方のアドバイスをいただきたく存じます。
例えば下記のコマンドをspawnで認識ができません。
expect -c " spawn cat /var/log/mysqld.log | grep 'password is generated' expect \".*\" send \"tes\n\" expect eof "
下記のようなエラーが表示されます。
cat: |: そのようなファイルやディレクトリはありません cat: grep: そのようなファイルやディレクトリはありません cat: 'password: そのようなファイルやディレクトリはありません cat: is: そのようなファイルやディレクトリはありません cat: generated': そのようなファイルやディレクトリはありません
そこでメタ文字を下記のように編集しました。
expect -c " spawn\ cat\ /var/log/mysqld.log\ \|\ grep\ \'password\ is\ generated\' expect \".*\" send \"tes\n\" expect eof "
すると下記のようなエラーとなり、実行されません。
invalid command name "spawn cat /var/log/mysqld.log | grep 'password is generated'" while executing "spawn\ cat\ /var/log/mysqld.log\ \|\ grep\ \'password\ is\ generated\'"

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。