風邪引いて寝てた。
ファイルがあるかどうか2つのディレクトリを比較して、足りないファイルをコピーするシェル。
function libDiff() { local JARS="/path/to/local/lib/*.jar" local DIFFPATH=/path/to/check/dir local SAVEFILE=/path/to/local/copylist.sh local COPYPATH=/path/to/install/lib local FILEPATH rm -rf ${SAVEFILE} for FILEPATH in JARS do filename=`basename ${FILEPATH}` if [ ! -e ${DIFFPATH}/${filename} ]; then echo "cp -f ${FILEPATH} ${COPYPATH}/${filename}" >> ${SAVEFILE} fi done }
書いてみると一瞬だったりする。
寝すぎて眠い。
あとよくお世話になってるのは、expect コマンド。
#!/usr/bin/expect set timeout 5 spawn ssh john@white-azalea.net expect "Enter passphrase for key" send "JohnDoe\n" expect "Last login" send "ls -l\n" interact
見たまま。
ダブルクォートをエスケープすれば、一応 bashスクリプトからでも読める。
#!/bin/sh expect -c " set timeout 5 spawn ssh john@white-azalea.net expect \"Enter passphrase for key\" send \"JohnDoe\n\" expect \"Last login\" send \"ls -l\n\" interact "
気をつけるのは、send の際に「\n」を突っ込むこと。
これが無いと、入力を完了できない。