at コマンドのデフォルトシェルを変更する方法

at コマンドのデフォルトシェルを変更する方法

を使ってプログラムの実行を遅らせたいときat

warning: commands will be executed using /bin/sh

このデフォルトのシェルを、bashたとえば に変更するにはどうすればよいでしょうか?

答え1

参照してくださいこれUnix & Linux Stack Exchange に投稿された質問です。最初の文はこうです:

Linux では、at は、指定されたコマンドをお気に入りのシェルではなく /bin/sh で実行することを常に警告します。このメッセージはソース コードにハードコードされているため、抑制することはできません。

回避策も提案されています:

渡したコマンドは /bin/sh によって解釈されます。このコマンドは、必要に応じてスクリプトへのパスにすることができます。その場合、/bin/sh はスクリプト プログラムを実行し、スクリプトのインタープリタを起動してスクリプトを解釈します。スクリプトの言語は、スクリプトを起動するプログラムから完全に独立しています。したがって、たとえば bash スクリプト (つまり、#!/bin/bash で始まるスクリプト) を実行したい場合は、スクリプトへのパスを at に渡すだけで、無関係なメッセージは無視します。

bashしたがって、の代わりにを使用してコマンドを実行するにはsh、 にスクリプトを渡すことができますat。スクリプトにシェバン行がある限り、そのシェバンが指しているプログラムによってスクリプトが実行されます。 を使用すると#!/bin/bash、 によって実行されますbash

関連情報