[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Should [[ -v 1 ]] be supported?
From: |
Peng Yu |
Subject: |
Should [[ -v 1 ]] be supported? |
Date: |
Wed, 26 Dec 2018 21:49:38 -0600 |
Hi,
[[ -v 1 ]] does not work for $1.
$ [ -v 1 ]; echo "$?"
1
$ set -- a
$ [ -v 1 ]; echo "$?"
1
Although [[ -z ${1+s} ]] and (($#)) works for testing if $1 is set,
neither of them are uniformly better performance wise. In this case,
should [[ -v 1 ]] be supported?
set -- $(seq 1)
time for ((i=0;i<10000;++i)); do
(($#))
done
real 0m0.140s
user 0m0.132s
sys 0m0.001s
time for ((i=0;i<10000;++i)); do
[[ -z ${1+s} ]]
done
real 0m0.216s
user 0m0.151s
sys 0m0.000s
time for ((i=0;i<10000;++i)); do
[[ -z ${1+s} ]]
done
real 0m0.336s
user 0m0.156s
sys 0m0.009s
set -- $(seq 10)
time for ((i=0;i<10000;++i)); do
(($#))
done
real 0m0.224s
user 0m0.130s
sys 0m0.001s
time for ((i=0;i<10000;++i)); do
[[ -z ${1+s} ]]
done
real 0m0.256s
user 0m0.147s
sys 0m0.000s
set -- $(seq 100)
time for ((i=0;i<10000;++i)); do
(($#))
done
real 0m0.260s
user 0m0.131s
sys 0m0.001s
time for ((i=0;i<10000;++i)); do
[[ -z ${1+s} ]]
done
real 0m0.244s
user 0m0.146s
sys 0m0.001s
set -- $(seq 1000)
time for ((i=0;i<10000;++i)); do
(($#))
done
real 0m0.338s
user 0m0.167s
sys 0m0.002s
time for ((i=0;i<10000;++i)); do
[[ -z ${1+s} ]]
done
real 0m0.277s
user 0m0.144s
sys 0m0.000s
set -- $(seq 10000)
time for ((i=0;i<10000;++i)); do
(($#))
done
real 0m1.012s
user 0m0.540s
sys 0m0.011s
time for ((i=0;i<10000;++i)); do
[[ -z ${1+s} ]]
done
real 0m0.292s
user 0m0.148s
sys 0m0.003s
--
Regards,
Peng
- Should [[ -v 1 ]] be supported?,
Peng Yu <=
- Re: Should [[ -v 1 ]] be supported?, Chet Ramey, 2018/12/27
- Re: Should [[ -v 1 ]] be supported?, Martijn Dekker, 2018/12/27
- Re: Should [[ -v 1 ]] be supported?, Peng Yu, 2018/12/27
- Re: Should [[ -v 1 ]] be supported?, Eduardo Bustamante, 2018/12/27
- Re: Should [[ -v 1 ]] be supported?, Martijn Dekker, 2018/12/27
- Re: Should [[ -v 1 ]] be supported?, Peng Yu, 2018/12/27
- Re: Should [[ -v 1 ]] be supported?, G. Branden Robinson, 2018/12/27
- Re: Should [[ -v 1 ]] be supported?, Eduardo Bustamante, 2018/12/27
- Re: Should [[ -v 1 ]] be supported?, Chet Ramey, 2018/12/28
- Re: Should [[ -v 1 ]] be supported?, G. Branden Robinson, 2018/12/27