- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
# For bash and ksh, we can use faster builtin routines to do manipulation,
# otherwise (ash) fall back to slower method using `expr'.
# The extra level of indirection using `eval' is necessary a) for ksh, and
# b) to get past ash.
if [ "$RANDOM" != "$RANDOM" ]
then
math () {
eval echo "\$(($*))"
}
index () { # index string c
eval "I=\${1%$2*}"
eval echo "\${#I}"
}
...
else
math () {
expr "$@"
}
index () { # index string c
expr $1 : ".*$2" - 1
}
...
fi
Отличный способ определения шелла из старослакварского /dev/MAKEDEV.
Govnocoder#0xFF 26.11.2012 17:44 # +2
Рандом рандому рознь.
bormand 26.11.2012 18:04 # +3
anonimb84a2f6fd141 26.11.2012 17:55 # 0
Пусть выбираются два рандомных элемента в массиве, а свап между ними происходит по какому-то условию, например зависит от погоды во Вьетнаме.
bormand 26.11.2012 18:00 # 0
Fai 26.11.2012 18:35 # 0
Например выбираем два случайных элемента, и свопим их только в том случае если первый больше второго, и разница их индексов не больше разницы между самими элементами. Правда я не уверен, будут ли сортироваться любые входные массивы.
bormand 26.11.2012 18:41 # 0
> будут ли сортироваться любые входные массивы
Не будут. Пример: [0.6, 0.5]
Fai 26.11.2012 18:49 # 0
bormand 26.11.2012 19:04 # 0
Fai 26.11.2012 19:16 # 0
http://ideone.com/lkKpR1
AliceGoth 29.11.2012 00:47 # 0
${1%$2*}, наименьшее совпадение с конца строки в первом аргументе с вторым и удаляет его.
SemaReal 21.02.2018 04:35 # 0
g0_1494089131830 22.02.2018 15:23 # 0