2016-08-08 17 views
-1

Googleの拡張機能(ChromeとFirefox用)でSeleniumテストを実行するために使用するサーバーがあります。 2時間ごとにセレンテストを実施します。私は14:00前よりも14:00後に異なるテストを実行したい。時間をbashの文字列/数字と比較するにはどうすればよいですか?

​​3210

しかし、どのようにこの場合、私がチェックします。このよう08:00(それは文字列です)として、

start_hour=`TZ='Asia/Tel_Aviv' date +"%H"` 

そして私は、特定の時間にそれを比較する方法を知っている:私は、この変数を持っています変数は14:00以降(14:00を含む)、または14:00より前に表示されますか? bashで文字列を比較する方法は? $start_hourが> = "14"かどうかを確認したいのですか?

午前8時以降に確認したい場合は、回答が異なりますか?

+0

8を引用する理由はありません - それは、一定なのでPRONになることはありませんeを文字列分割とglob展開(これは引用符で囲まない)に変換します。引用する必要があるのは、変数の拡張です。 $ start_hourではなく、 '' $ start_hour "'です。 –

+0

ところで、あなたはおそらく*あなたの '08 'に先行する' 0'を望んでいません。これは8進数の解釈を要求することができ、0〜7の数字だけを8進数として解析することができます。 –

+0

私はこの質問を一般的なbashの大/小数点の整数比較について一般化することを検討したいと思います。ところで、時間について具体的にする理由はありません。 –

答えて

3

大きいか小さい、より比較、test操作-gtを実行するには、-le-ge、及び-le存在します。

start_hour=$(TZ='Asia/Tel_Aviv' date '+%k') 
[ "$start_hour" -ge 8 ] 

%H%kの使用、および088 - 先頭の0は小数点として解釈されることから、あなたの数字を防ぐことができます。

同様に、ネイティブのbash構文で、数値比較のために:


あなたのシェルはbashがある場合

start_hour=$(TZ='Asia/Tel_Aviv' date '+%k') 
((start_hour >= 8)) 
、および ない/binに/ shを、あなたは本当にASCIIソートしたいですか文字列の比較、あなたは [[ ]]の内側 ><を使用することができます。

start_hour=$(TZ='Asia/Tel_Aviv' date '+%H') 
[[ $start_hour > 08 || $start_hour = 08 ]] 
+0

$ start_hourは常に2桁であることに注意してください。時間が08:00 AMならば、それは "08"です。 – Uri

+0

@Uri、yes、しかし '08' **は有効な数字ではありません**。先頭の0は8進数として解析されるためです。したがって、あなたが '08'を比較したいのであれば、数字ではなく文字列として行う必要があります。 –

+0

ありがとうございます、私は試してみて、それが動作するかどうかをお知らせします。文字列や数値を比較するのは気にしませんが、2桁の文字列は常に数値と同じであるため、問題はありません。 – Uri

関連する問題