$ time if [[ $dir2 -ot $dir1 ]] ; then open $dir2 ; else open $dir1 ; fi
real 0m0.055s
user 0m0.023s
sys 0m0.018s
$ time [[ $dir2 -ot $dir1 ]] && open $dir2 || open $dir1
real 0m0.000s
user 0m0.000s
sys 0m0.000s
上記では、どのディレクトリが古いかをテストし、古いディレクトリを開く2つの方法を比較しました。テスト後、&&
AND演算子が||
/ testと同じ機能を持つ理由とより速い理由について混乱しているようです。それぞれの利点/欠点がありますか?if
then
ベストアンサー1
time
常に次を乗算する管路。
ㅏ管路1つ以上のコマンド(単純または化合物)制御演算子の1つで
|
区切る|&
。
if ... fi
単一の複合コマンドであり、[[ ... ]]
コマンドです。それ以降の部分は&&
測定されませんtime
。foo && bar
コマンドリスト。
比較する:
$ time if true; then sleep 1; fi
real 0m1.004s
user 0m0.000s
sys 0m0.000s
$ time true && sleep 1
real 0m0.000s
user 0m0.000s
sys 0m0.000s
# example of pipeline separated with |:
$ time true | sleep 1
real 0m1.004s
user 0m0.000s
sys 0m0.000s
すべての2番目のコマンドの時間を測定するには、コマンドを(中括弧)に入れてグループ化します。
$ time { true && sleep 1; }
real 0m1.003s
user 0m0.000s
sys 0m0.000s