expect を使用して at ジョブの作成を自動化する

expect を使用して at ジョブの作成を自動化する

時間とプロセス名を取得して at に渡し、ジョブをスケジュールするスクリプトを作成しようとしています。EOT を送信できません。

    #! /usr/bin/expect
    # Usage: setupkill.exp time process.
    # press ctrl-D to finish the at command.

    set time [lindex $argv 0]
    set process [lindex $argv 1]

    spawn at $time
    expect "at>"
    send "/home/jagan/p/killprocess $process\r";
    expect "at>"
    send "^D";

    interact

このスクリプトは、特定のプロセスを指定された時間に終了することを目的としています。

答え1

Ctrl + D を次のように送信します:send "\004"

答え2

単純なシェル スクリプトを使用することもできます。

#! /bin/sh
# Usage: setupkill.sh time process.
echo /home/jagan/p/killprocess "$2" | at "$1"

(申し訳ありませんが、私には分かりませんのでexpect、これは単なる簡単な回避策です。)

関連情報