タグ付けされた質問 「utilities」

22
不要な遅延なしにコマンドをbashでタイムアウトする
この回答へのコマンドラインコマンド一定の時間が経過するコマンドを自動殺します は、bashコマンドラインから実行時間の長いコマンドをタイムアウトする1行の方法を提案しています。 ( /path/to/slow command with options ) & sleep 5 ; kill $! ただし、特定の「長時間実行」コマンドがタイムアウトよりも早く終了する可能性があります。(これを「通常は長時間実行するが時々高速」なコマンド、または楽しみのためにtlrbsfと呼びましょう。) したがって、この気の利いた1ライナーアプローチにはいくつかの問題があります。まず、これsleepは条件付きではないため、シーケンスの完了にかかる時間に望ましくない下限が設定されます。tlrbsfコマンドが2秒で終了するスリープには、30 秒、2分、さらには5分を考慮してください。これは非常に望ましくありません。第二に、killは無条件であるため、このシーケンスは、実行されていないプロセスを強制終了し、それについて駄々をこねることを試みます。 そう... 通常は長時間実行されるが時々高速な("tlrbsf")コマンドをタイムアウトする方法はありますか。 bash実装があります(他の質問にはすでにPerlとCの回答があります) tlrbsfプログラムの終了、またはタイムアウトの経過のどちらか早い方で終了します 存在しない/実行されていないプロセスを強制終了しません(またはオプションで、不正な強制終了について文句を言いません) ワンライナーである必要はありません CygwinまたはLinuxで実行できます ...ボーナスポイントについては、フォアグラウンドでtlrbsfコマンドを実行し、バックグラウンドで「スリープ」または追加のプロセスを実行します。これにより、tlrbsfコマンドのstdin / stdout / stderrをリダイレクトできます。直接実行しますか? その場合は、コードを共有してください。そうでない場合は、その理由を説明してください。 私は前述の例をハックするためにしばらく費やしてきましたが、bashスキルの限界に達しています。

14
ファイルの最長の行
ファイルの最も長い行の長さを見つける簡単な方法を探しています。理想的には、スクリプトではなく、単純なbashシェルコマンドになります。
198 bash  shell  utilities 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.