bash-utility icon indicating copy to clipboard operation
bash-utility copied to clipboard

Use (( )) instead of [[ ]]?

Open dimitry-ishenko opened this issue 2 years ago • 2 comments

(1) I see bash-utility heavily using

[[ $# -lt 2 ]] && ...

Wouldn't it be more readable to do

(( $# < 2 )) && ...

instead? (( is used for arithmetic evaluation, which is what -lt is trying to force inside [[.

(2) Also, seeing this:

[[ $# = 0 ]] && ...

rubs me the wrong way on multiple levels.

First, we are all taught that = is assignment and == is equivalence comparison. Yes, in bash they are the same when used inside [[, but = is used for assignment elsewhere in bash and IMHO this is just a bad coding practice.

Second, operator = within [[ is used for pattern matching and not arithmetic comparison. So, it should minimally be:

[[ $# -eq 0 ]] && ...

or better yet:

(( $# == 0 )) && ...

to be more readable and consistent with (1).

dimitry-ishenko avatar Dec 21 '22 17:12 dimitry-ishenko

Hi @dimitry-ishenko thanks for your feedbacks. I will update them when I get some time. In the meantime you could raise a PR with the recommended changes and I am happy to review them.

labbots avatar Feb 07 '23 10:02 labbots

Oh hey somebody is alive in here. 😃 I've made quite a few changes. Will send PR shortly

dimitry-ishenko avatar Feb 07 '23 20:02 dimitry-ishenko