17

「at」コマンドを使用するたびに、次のメッセージが表示されます。

warning: commands will be executed using /bin/sh

それは何について私に警告しようとしていますか? さらに重要なことに、警告をオフにするにはどうすればよいですか?

4

4 に答える 4

13

これは、bash をシェルとして使用しない私たちにとっては良い警告となります。なぜなら、このコードを実行すると、日常のシェルにある機能が使用できないことを忘れてしまうからです。決められた時間に。

すなわち

username@hostname$ at 23:00     
warning: commands will be executed using /bin/sh
at> rm **/*.pyc
at> <EOT>
job 1 at 2008-10-08 23:00

「**」の使用は完全に有効な zsh ですが、/sbin/sh ではありません! 別のシェルの使用に慣れている場合、これらの間違いを犯しやすいため、正しいことを行うことを忘れないでください。

于 2008-10-08T03:38:30.427 に答える
5

警告は迷惑なだけでなく、有害な影響を及ぼしますか?マニュアルページにはオフにする方法が記載されていないため、ソースからatを再構築せずに発行を停止することはできないと思います。

さて、見たくない場合は、at [time] 2>/dev/null忘却に送るために使用できますが、残念ながら、at>プロンプトは何らかの理由でSTDERRに出力されます(バグ、IMO-実際にはSTDOUTに移動する必要があります)。 'これによっても隠されています。

プロンプトを食べずに警告を排除するシェル配管を作成することは可能かもしれませんが、

  1. これ()での私の試みat [time] 2>&1 | grep -v warningは機能せず、
  2. うまくいく組み合わせを見つけたとしても、エイリアシングには適していません(時間が最後ではなく途中になるため)。そのため、使用するたびに完全に入力するか、それ以外の場合は、ラッパースクリプトを記述しatて処理します。

したがって、実際に問題が発生しない限り、他の人と同じように警告を無視するのが最善だと思います。

于 2008-10-08T12:41:48.333 に答える
2

このメッセージを回避したい場合は、指定された環境 (ksh、bash、csh、zsh、perl など) を呼び出すスクリプトを「at」で実行してください。

さらに、詳細については、「at」man ページhttp://www.rt.com/man/at.1.htmlを参照してください。

at and batch read commands from standard input or a specified  file which are to be executed at a later time, using /bin/sh.
于 2008-10-08T03:41:23.510 に答える