[メモ] Shellscriptでサイレントインストールモドキを実現するには。

AIX、UNIX、Linux

少し仕事で悩んでしまったところなので備忘録代わりとする。

とあるツールを導入するためにサイレントインストールで導入する必要があったのだが、マニュアルにサイレントインストールで行う方法が記載されていなかったので悩んでおりました。
ShellScriptで実現できるんだろうけど、と漠然と考えていたら以下のWebサイトにどんぴしゃりの情報があったので試してみました。

Linuxの対話がめんどくさい?そんな時こそ自動化だ!-expect編- - Qiita
expect編以外に書くつもりは毛頭ありません。manを見てもググってもどうにも手がつけられない程度に分かりづらかったので、備忘録としてまとめます。expectって何?対マシンに於いて発生する…
#!/bin/bash

INSTSV=$HOSTNAME
BACKUPSV=backupsv
PKGPATH=/tmp/backuptool

expect -c "
set timeout 1
spawn $PKGPATH/install
expect "Do you wish to continue? [y,n] (y)"
send "yr"
expect "Enter the name of this client :"
send "$INSTSVn"
interact

こんな感じでやりたいことが実現できました。

POINT

  • set timeout: 標準入力からの応答待ち時間
  • spawn: 自動実行したいコマンド
  • expect: 指定した文字列と標準入力を比較し、一致する文字列が出力されるまで待機する
  • send: 指定した文字列を送信する
  • interact: expect処理を抜ける。
この記事を書いた人

kometchtech

うつ病を患いながら、IT業界の末席にいるおっさんエンジニア。科学計算をしたことがないのに、HPC分野にお邪魔している。興味のある分野で学習したことをblogにまとめつつ、うつ病の経過症状のメモも置いておく日々。じつはRouterboard User Group JPの中の人でもある。 Amazon欲しいものリスト / Arm板を恵んでくれる人募集中

kometchtechをフォローする
タイトルとURLをコピーしました